Here are a list of web pages I've been reading recently:-
- Disruptor (lock free and garbage free) see also
- Pinning Threads
- Pinning Processes
- JIT Warming (but warming time can be complex)
- Memory Mapped IPC (within hosts)
- Lock Free Algorithms and Courses
- Inter Socket IPC with UDP (between hosts)
- SDP with Infiband (if you have the hardware)
- Java Large Pages (not always faster)
- Roll Your Own Everything including fix layer
- Immutable objects, but not for really low latency as need to create objects in the first place
- Cache friendly data structures cache misses are expensive
- O(1) or O(log2 n) at worst algorithms
- Single writer principle, all others are readers
- Number of threads = number of cores + 1
- Keep call stacks small and don’t use Spring as GC is harder with a big stack
- No locks or IO on the main flow
- Keep the flow simple and uncluttered
- Buy big machines with large RAM to avoid GC all together
- Use Unsafe for low level data manipulation and compare and swap.
In due course I will be adding posts for each of these topics.