Key here is CONCURRENCY. If you target .Net let me know I could give you couple pointers. I run on the new TPL Dataflow library which is blazing fast and works very well despite it still being in beta. Its an amazing new library and really expands where Rx left off. Also, make sure you store data in binary format, most often your bottleneck is i/o. And do not read byte by byte or small chunks of byte arrays but read a significant chunk as byte array and process internally, minimizing I/O overhead.
Quote from DevBrian:
I'm sorry. I did mean 200k-300k, not 200-300.
I was able to strip things down, to where I could pump 5 million messages per second. Few things I did:
- Minimized the number of private method calls.
- Removed interface calls.
- No locks/no multi-threading/no arithmetic
- No maintaining of any "Last Quote" type collections
With a strategy that does absolutely nothing, and without the above, it can go 5 million messages a second. I add the above, it goes back down to 200k-300k message per second.
I can live without the above. But any strategy will likely reintroduce this level of overhead, and I'm back to 200k-300k messages per second.
