When measuring system performance, understanding context makes the difference between drawing useful insights or chasing ghosts. Behavior under load can be counterintuitive, and metrics are often misinterpreted when analyzing performance. I’ll examine key metrics and measurement methodology considerations that apply across different architectures, from highly distributed systems to individual services that can become bottlenecks.
I’ve recently worked on implementing high-precision timing measurements in the critical path on a few projects recently, where using the Time Stamp Counter (TSC) comes in handy. This post covers the implementation of a TSC-based clock and some considerations when using it.
Conducting interviews recently for hiring for one of my teams has left me with some thoughts and tips for candidates navigating software engineering interviews.
I try to answer the question: Given that x86 has strong ordering is there any point from a performance perspective to using anything other than the C++ sequentially consistent memory ordering?
A look at the significant influence that configuration has on Aeron’s performance depending on use-case, and the importance of not just relying on the default configuration.
I often find myself using these commands to get detailed information about a system’s hardware or manage system’s resources. I will probably update this list as I think of more.