Overview
Explore a comprehensive top-down approach to architecting for performance in this 49-minute Devoxx conference talk. Delve into performance design principles, tactics, patterns, algorithms, and strategies across multiple layers of abstraction, from high-level software architecture to operating system and hardware optimizations. Learn about Big O complexity, caching techniques, batching, synchronous design, Java-specific considerations, memory access optimization, and testing methodologies. Discover advanced concepts such as open addressing, lock-free programming, compare-and-swap operations, cache-oblivious algorithms, and data-oriented design. Gain insights into thread affinity, non-uniform memory access, large pages implementation, file system optimizations, and strategies to avoid false sharing. Explore SSD tuning, I/O scheduler configurations, and power-saving states. Conclude with practical recommendations and references for further study in performance engineering.
Syllabus
Introduction
Big O complexity
Cache
Batching
Designing synchronous
Java
Memory Access
Testing
OpenAddressing
LockFree
Compare and Swap
Comparing Swap API
Cache oblivious algorithms
Example
Dataoriented design
Thread affinity
Nonuniform memory access
Large pages
Guidelines for large pages
RunFS and TempFS
False sharing
Possible false sharing
SSD tuning
IO schedulers
Idle power saving states
Recommendations
References
Taught by
Devoxx