
On 12/28/05, Caleb Epstein <caleb.epstein@gmail.com> wrote:
I'll see if I can't knock up a straight socket-based test like this one ( e.g. just POSIX socket calls, no asio) and see if it gets similar results to Rene's benchmark. The same benchmark run on some other UNIX-based system (MacOS, *BSD, etc) would be another interesting data-point to have to see if this is an implementation or a platform issue.
OK, as threatened I've attached a POSIX-only version of Rene's test that uses only socket, bind, select, sendto, recvfrom and friends. It looks like, at least in the case of the asio ASYNC test, there is some performance upside to be achieved: Linux 2.4.21 SMP: --- ASYNC... ### TIME: total = 1.30585; iterations = 100000; iteration = 1.30585e-05; iterations/second = 76578.8 ### TIME: total = 1.24593; iterations = 100000; iteration = 1.24593e-05; iterations/second = 80261 ### TIME: total = 1.24527; iterations = 100000; iteration = 1.24527e-05; iterations/second = 80304.2 ### TIME: total = 1.24671; iterations = 100000; iteration = 1.24671e-05; iterations/second = 80211.2 ### TIME: total = 0.995225; iterations = 100000; iteration = 9.95225e-06; iterations/second = 100480 -- ...ASYNC: average iterations/second = 80258.8 --- SYNC... ### TIME: total = 1.10908; iterations = 100000; iteration = 1.10908e-05; iterations/second = 90164.5 ### TIME: total = 1.10027; iterations = 100000; iteration = 1.10027e-05; iterations/second = 90886.4 ### TIME: total = 1.1056; iterations = 100000; iteration = 1.1056e-05; iterations/second = 90448.5 ### TIME: total = 1.1051; iterations = 100000; iteration = 1.1051e-05; iterations/second = 90490 ### TIME: total = 1.10743; iterations = 100000; iteration = 1.10743e-05; iterations/second = 90299.2 ### TIME: total = 1.09628; iterations = 100000; iteration = 1.09628e-05; iterations/second = 91217.8 -- ...SYNC: average iterations/second = 90531 Linux 2.6.13.4 uniprocessor: --- ASYNC... ### TIME: total = 1.81951; iterations = 100000; iteration = 1.81951e-05; iterations/second = 54960 ### TIME: total = 1.78175; iterations = 100000; iteration = 1.78175e-05; iterations/second = 56124.6 ### TIME: total = 1.80059; iterations = 100000; iteration = 1.80059e-05; iterations/second = 55537.3 ### TIME: total = 1.81167; iterations = 100000; iteration = 1.81167e-05; iterations/second = 55197.6 ### TIME: total = 1.80915; iterations = 100000; iteration = 1.80915e-05; iterations/second = 55274.6 ### TIME: total = 2.77475; iterations = 100000; iteration = 2.77475e-05; iterations/second = 36039.2 -- ...ASYNC: average iterations/second = 55533.5 --- SYNC... ### TIME: total = 1.48353; iterations = 100000; iteration = 1.48353e-05; iterations/second = 67406.7 ### TIME: total = 1.37942; iterations = 100000; iteration = 1.37942e-05; iterations/second = 72494 ### TIME: total = 1.36727; iterations = 100000; iteration = 1.36727e-05; iterations/second = 73138.3 ### TIME: total = 1.37749; iterations = 100000; iteration = 1.37749e-05; iterations/second = 72595.8 ### TIME: total = 1.35504; iterations = 100000; iteration = 1.35504e-05; iterations/second = 73798.8 ### TIME: total = 1.19966; iterations = 100000; iteration = 1.19966e-05; iterations/second = 83357.3 -- ...SYNC: average iterations/second = 73006.7 -- Caleb Epstein caleb dot epstein at gmail dot com