From 60c0840b943d2cb1a58ad7ce209c6659790ee2b5 Mon Sep 17 00:00:00 2001 From: Yorhel Date: Fri, 5 Jul 2013 12:32:12 +0200 Subject: [PATCH] Add dump/insbench + nccolour image for CentOS --- dat/dump-insbench | 84 +++++++++++++++++++++++++++++++++++ dat/dump-nccolour | 4 ++ dat/ylib | 1 + img/globster.png | Bin 0 -> 23390 bytes img/insbench-bench-thumb.png | Bin 0 -> 8450 bytes img/insbench-bench.png | Bin 0 -> 24543 bytes img/insbench-rand-thumb.png | Bin 0 -> 7059 bytes img/insbench-rand.png | Bin 0 -> 21057 bytes img/nccol-centos64.png | Bin 0 -> 25327 bytes index.cgi | 3 ++ 10 files changed, 92 insertions(+) create mode 100644 dat/dump-insbench create mode 120000 dat/ylib create mode 100644 img/globster.png create mode 100644 img/insbench-bench-thumb.png create mode 100644 img/insbench-bench.png create mode 100644 img/insbench-rand-thumb.png create mode 100644 img/insbench-rand.png create mode 100644 img/nccol-centos64.png diff --git a/dat/dump-insbench b/dat/dump-insbench new file mode 100644 index 0000000..4b3d744 --- /dev/null +++ b/dat/dump-insbench @@ -0,0 +1,84 @@ +=pod + +I<2013-07-05> - One of my favourite data structures in C is the ordered vector +(or array, whatever you call them). Incredibly simple to implement, very low +memory overhead, and can provide O(log n) lookup with a simple binary search. +However, ordered vectors have one very weak point: insertion and deletion of +items is O(n). For small n that doesn't really matter, but if the number of +items in the list can grow a bit, you may run into performance issues. If +you're not careful, this could even turn your ordered vector into an attack +vector (apologies for the terrible pun). + +My goal with this benchmark is to get a feeling on how, exactly, insertion +performance behaves with an ordered vector. What values of n are "small"? And +how much worse does insertion performance get compared to more complex data +structures? + +For comparison, I chose the B-tree and hash table implementations from +L (from commit fff70758, to be +precise). My goal wasn't to benchmark the performance of different +implementations, so I simply chose two implementations that I suspect are among +the fastest. The vector implementation in the benchmarks is my own creation: +L from +the L code base. + +B L + + +=head2 Best case & worst case + +For a start, I decided to benchmark the best and worst case performance of +inserting elements into a vector. The best case happens when inserting all +items at the end of the vector, the worst case when inserting them in front. +The B-tree and hash table benchmarks provided for comparison have all items +inserted in order. + +I'm cheating here with the vector implementation, because all elements are +inserted in the list without first finding out the position with a binary +search. Actual performance will be thus be a bit worse, depending on whether +the final application needs that binary search or whether it can assume its +input to be already sorted. + +L<[img graph insbench-bench-thumb.png ]|http://dev.yorhel.nl/img/insbench-bench.png> + +Gnuplot script: (The awk(ward) part can likely be done natively in gnuplot as +well, but I was too lazy to figure out how) + + set terminal png size 1000, 1500 + set output "bench.png" + set logscale xy + set xlabel "number of items" + set ylabel "average time per insert (ms)" + set grid mxtics xtics mytics ytics + plot "< awk '{print $1, $2/$1*1000}' bench-vec" title 'vector, worst case',\ + "< awk '{print $1, $2/$1*1000}' bench-best" title 'vector, best case',\ + "< awk '{print $1, $2/$1*1000}' bench-hash" title 'khash',\ + "< awk '{print $1, $2/$1*1000}' bench-btree" title 'kbtree' + + +=head2 Average case + +For the second benchmark I inserted values created with C, which should +be a more accurate simulation of some real-world applications. This time I'm +not cheating with the vector implementation, a binary search is performed in +order to insert the items in the correct location. + +L<[img graph insbench-rand-thumb.png ]|http://dev.yorhel.nl/img/insbench-rand.png> + + set terminal png size 1000, 1500 + set output "bench-rand.png" + set logscale xy + set xlabel "number of items" + set ylabel "average time per insert (ms)" + set grid mxtics xtics mytics ytics + plot "< awk '{print $1, $2/$1*1000}' rand-vec" title 'vector',\ + "< awk '{print $1, $2/$1*1000}' rand-hash" title 'khash',\ + "< awk '{print $1, $2/$1*1000}' rand-btree" title 'kbtree' + + +=head2 Benchmarking setup + +All benchmarks were performed on a 3 GHz Core Duo E8400 with a 6 MiB cache. +Compiled with the Gentoo-provided gcc 4.6.3 at -O3, linked against glibc 2.15, +and run on a Linux 3.8.13-gentoo kernel. Boring details, but somehow good to +document. diff --git a/dat/dump-nccolour b/dat/dump-nccolour index e28cf93..3abf6e8 100644 --- a/dat/dump-nccolour +++ b/dat/dump-nccolour @@ -97,3 +97,7 @@ program, which also explains what each column means. =item Mac OS X, iTerm2 [img scr nccol-osx-iterm2.png ] + +=item CentOS 6.4 + +[img scr nccol-centos64.png ] diff --git a/dat/ylib b/dat/ylib new file mode 120000 index 0000000..b6fb969 --- /dev/null +++ b/dat/ylib @@ -0,0 +1 @@ +../../ylib/ \ No newline at end of file diff --git a/img/globster.png b/img/globster.png new file mode 100644 index 0000000000000000000000000000000000000000..8219997b93a78a2d78b6c5bf9a49d605817a5280 GIT binary patch literal 23390 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 literal 0 HcmV?d00001 diff --git a/img/insbench-bench.png b/img/insbench-bench.png new file mode 100644 index 0000000000000000000000000000000000000000..ac6d6bbc71ddc5e56d163c55123ba862aa466289 GIT binary patch literal 24543 zcmdS>c|4Tw`#+3NNs2;U{}j1B0&|`0eX!QtxX*@Fk94j*tv~ zn-G%i2=(;@FdssFOL^ivVLrL6)KNl5Zkv(CwcA3lAiqN}ppBc1+K`vjd|_@E6i$bbKe9`UwK*awSmVMFb! z!n6ib+mT;I&B1=WmOx-iH7-WxzD*bB7HL;(jY*Jft{m^H{52K-^Ed+I51p0Z={SP0 zb$te{ak>Y!Qi}LP`fM$e`_~IpnSMTQK8aF)nDIN%yM_tgeNdeA&&D@U_*G=a`;xGS zv5vQe4M*eG4m!PcY$edTtRG1t!AP=|@={REa{c5Y0-P=pzqO)ndJ3kyY%0!jQ zQ#+UCh`8&cmfUT5sv6>jC2iLwBtI2HFpWcS3bF4WRFo(U>=*lIM(mg_a7tj0 zAUGzUF&nas3R+l*;QPL{5hx^O3H_<)mbbR$l^>=pf_>n$(nSgU?-t&csG~3h&w$a- zk-~_+7SSYS@49|V$I-QWOVNeA622lz3(rrjUa512kOk+19o zb9{=Q31rVcIepT6-EXeOv+D!jgGVc!2Lq`!UR}qo^-G#APwkrZ%BYyL`rVK|a#Y%h0AS9Z1n3)s*aL0aCIp$> zsf$4}^Mk@NkB2@i`Af2gN7~|8KL%3&U}!=__dZDn2L3jM)M≪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 CgtaFC literal 0 HcmV?d00001 diff --git a/img/insbench-rand-thumb.png b/img/insbench-rand-thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..6e5e2eb356768cc01a0b69b26f94eb5e8cc97237 GIT binary patch literal 7059 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 literal 0 HcmV?d00001 diff --git a/img/insbench-rand.png b/img/insbench-rand.png new file mode 100644 index 0000000000000000000000000000000000000000..af585c010beefe39ba0e4a4613e40eacfd81110f GIT binary patch literal 21057 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 literal 0 HcmV?d00001 diff --git a/index.cgi b/index.cgi index 5e5e257..5b2bf85 100755 --- a/index.cgi +++ b/index.cgi @@ -12,6 +12,7 @@ BEGIN { ($ROOT = abs_path $0) =~ s{index\.cgi$}{}; } my @changes = ( + [ '2013-07-05', '/dump/insbench', 'Documented a little data structure benchmark' ], [ '2013-06-15', '/ncdc', 'ncdc 1.17 released' ], [ '2013-05-09', '/ncdu', 'ncdu 1.10 released' ], [ '2013-04-04', '/ylib', 'Created a page for Ylib' ], @@ -103,6 +104,7 @@ TUWF::register( qr{dump/awshrink} => sub { podpage(shift, 'dump-awshrink', 'dump', 'awshrink', 'AWStats Data File Shrinker') }, qr{dump/grenamr} => sub { podpage(shift, 'dump-grenamr', 'dump', 'grenamr', 'GTK+ Mass File Renamer') }, qr{dump/nccolour} => sub { podpage(shift, 'dump-nccolour', 'dump', 'nccolour', 'Colours in NCurses') }, + qr{dump/insbench} => sub { podpage(shift, 'dump-insbench', 'dump', 'insbench', 'Insertion Performance Benchmarks') }, qr{feed\.atom} => \&atom, qr{(ncdc|ncdu|globster)/bug} => \&bug_list, qr{(ncdc|ncdu|globster)/bug/post} => \&bug_post, @@ -527,6 +529,7 @@ sub htmlMenu { $m->('/dump/awshrink','AWShrink', $o{page} eq 'dump' && $o{sec} eq 'awshrink'); $m->('/dump/grenamr', 'Grenamr', $o{page} eq 'dump' && $o{sec} eq 'grenamr'); $m->('/dump/nccolour','NC-Colour', $o{page} eq 'dump' && $o{sec} eq 'nccolour'); + $m->('/dump/insbench','Ins-bench', $o{page} eq 'dump' && $o{sec} eq 'insbench'); }); } if($o{spec}{$o{page}}) {