5 ms·
Can you give more context about your projects i.e. what makes them require a super high-performance queue?
by exhaze 6y ago
Can you give more context about your projects i.e. what makes them require a super high-performance queue?
- bob1029 6y agoThe type of project I am using this for is a centralized client/server UI architecture where 100% of user events are submitted to the queue for processing. This allows for very high throughput user interfaces if you are doing clever things on the server WRT caching of prior-generated content for other events (i.e. all login attempts for the same region will get the same final view). I found the abstraction this was originally developed for - processing of financial transactions with latency as the primary constraint - as an excellent analogue for UI event processing. Latency is also a huge concern when the user's eyeballs are in the loop.
- cma 6y agoAnd that use Java...
- dkersten 6y agoIf you control object pools yourself and don’t use GC, as the LMAX disrupted does as far as I remember, Java can be blazingly fast.
- cma 6y agoYou have to make sure all dependencies don't use GC as well right?
- dkersten 6y agoSure, but I'm assuming that if you're writing such high performance limited scope software like the LMAX disruptor, you have few dependencies (looking at their code, it appears that the disruptor code itself has no external dependencies and uses few of the standard library classes outside of NIO bytebuffers).
- MarkyC4 6y agoin LMAX-disruptor's case, they have no runtime dependencies: https://github.com/LMAX-Exchange/disruptor/blob/master/build.gradle#L55-L57 https://github.com/LMAX-Exchange/disruptor/blob/master/build...
- corysama 6y agoMartin Thompson has basically made a career out of writing Java in the style of embedded C because he found enterprise customers that need the performance of embedded C but, being enterprise, insist on absolutely everything being Java.
- afiori 6y agocalling external code from Java adds latency.