Wednesday, May 12, 2010
Just gotta love stupid benchmarks
Because I like running stupid bench marks, I thought it might be fun to
see just how fast syslogintr
is—to see if it even gets close to handling thousands of requests per
second.
So, benchmarks.
All tests were run on my development system at Chez Boca: 1G of RAM, 2.6GHz dual core
Pentium D (at least, that's why my system is reporting). I tested
syslogintr
linked against Lua and against LuaJIT. All were run with messages (after
being processed) being relayed to a multicast address (but one set without a
corresponding listener, and another set with a corresponding listener).
The script being tested was using.lua
from the current version; executable compiled without
any optimizations.
And the results:
Lua | LuaJIT | |
---|---|---|
no multicast listener | 10,250 | 12,000 |
multicast listener | 8,400 | 8,800 |
Not terribly shabby, given that the main logic is in a dynamic scripting language. It would probably be faster if it skipped the relaying entirely and compiled with heavy optimizations, but that's a test for another day.
Update a few minutes later …
I forgot to mention—those figures are for a non-threaded (that is, it only runs on a single CPU) program. Going multithreaded should improve those figures quite a bit.