|
|
|
Back to newsletter 306 contents
In Dmytro Vyazelenko's talk (see the articles section below), he points out that for low latency you need different designs at millisecond, microsecond and nanosecond scales. For milliseconds, avoid obvious blocking, tune GC, size thread pools, use efficient database access, and monitor tail latency. For microseconds, the design needs allocation-free hot paths, primitive collections, binary protocols, cache-friendly data structures, careful thread affinity, batching, single-writer patterns, and tools like JFR or async-profiler to understand CPU and native costs. For nanoseconds, most framework abstractions are too expensive, performance depends on in-process calls, JIT inlining, preallocated memory, predictable branch behavior, avoiding synchronization and object churn, and designing around CPU caches.
Java can be fast at all three scales, but each step down in latency removes another layer of abstraction and requires more deliberate control over memory, threading, communication, and measurement. Now on to all the usual newsletter list of links, tips, tools, news and talks, and as usual I've extracted all the tips into this month's tips page.
Java performance tuning related news
Java performance tuning related tools
Back to newsletter 306 contents