Because I like running stupid bench marks, I thought it might be fun to see just how fast syslogintr [6] is—to see if it even gets close to handling thousands of requests per second [7].
So, benchmarks.
All tests were run on my development system at Chez Boca: 1G (gigabyte) of RAM (Random Access Memory), 2.6GHz (Gigahertz) dual core Pentium D (at least, that's why my system is reporting). I tested syslogintr linked against Lua [8] and against LuaJIT [9]. 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 [10]; executable compiled without any optimizations.
And the results:
Table: Number of messages per second processed by syslogintr Lua LuaJIT ------------------------------ no multicast listener 10,250 12,000 multicast listener 8,400 8,800
Not terribly shabby [11], 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.
I forgot to mention—those figures are for a non-threaded (that is, it only runs on a single CPU (Central Processing Unit)) program. Going multithreaded should improve those figures quite a bit.
[6] https://github.com/spc476/syslogintr
[7] http://www.kegel.com/c10k.html
[10] https://github.com/spc476/syslogintr/archive/refs/tags/v1.0.0.tar.gz