Skip to content

Performance


Resources


Getting fair/consistent results

  • Disable turboboost
  • Disable hyper threading
  • Set scaling_governor to ‘performance’
  • Set cpu affinity
  • Set process priority
  • Drop file system cache
  • Disable address space randomization

Methodologies to discover bottlenecks


Huge-pages

How to reliably allocate and use huge-pages in Linux:

  • https://mazzo.li/posts/check-huge-page.html
  • https://www.baeldung.com/linux/huge-pages-management
  • https://www.lukas-barth.net/blog/linux-allocating-huge-pages/

Hardware effects

Kobzol/hardware-effects illustrates effects of the following hardware quirks:

  • 4k aliasing
  • bandwidth saturation
  • branch misprediction
  • branch target misprediction
  • cache conflicts
  • cache/memory hierarchy bandwidth
  • data dependencies
  • denormal floating point numbers
  • DRAM refresh interval
  • false sharing
  • hardware prefetching
  • hardware store elimination
  • memory-bound program
  • misaligned accesses
  • non-temporal stores
  • software prefetching
  • store buffer capacity
  • write combining