Profiling with perf and valgrind — reading the output
A practical guide to perf and valgrind: what each tool measures, which commands to run, and how to read the output to find real performance bottlenecks.
A practical guide to perf and valgrind: what each tool measures, which commands to run, and how to read the output to find real performance bottlenecks.
How CPU cache lines determine whether your data layout helps or hurts performance. Array of Structures vs Structure of Arrays — with measurements.
Why the default heap breaks embedded firmware and high-throughput servers. Pool allocators, arena allocators, and stack allocators — implementation, tradeoffs, and when to use each.
How move semantics eliminate copies in C++11 and beyond. Rvalue references, move constructors, std::move, and the patterns that make hot paths allocation-free.
How single-producer/single-consumer and multi-producer queues work, the memory ordering guarantees they need, and the performance implications on modern CPUs.