The other side of performance engineering

Techniques

Computation vs memory access

On modern architectures, uncached memory access becomes more expensive than re-executing simple computations

Reduce memory pressure

  • Minimize memory allocation in hot paths
  • Reuse buffers (after resetting)
  • Stack > heap for small state

Loop unrolling

SIMD operations

Branchless code

https://tiki.li/blog/lucky_code.html