Skip to content

Q1.2024

Compare
Choose a tag to compare
@dendibakh dendibakh released this 02 Apr 14:47
· 478 commits to main since this release

New Content

  • A case study about L3 cache sensitivity, contributed by @chusAB (chapter 12, pull request #39). It shows how you can determine whether an application is sensitive to the size of the last-level cache (LLC). Using this information, you can make educated decisions when buying HW components for your computing systems. Similarly, you can later determine sensitivity to other factors, such as memory bandwidth, core count, and processor frequency.
  • I wrote a section about how to measure hot code footprint (chapter 11, commit 2183eda). Applications with large amounts of hot code usually cause pressure on the CPU front end (I-cache and TLBs). Knowing how many cache lines/pages of a program code are hot can be an additional argument for investing time into machine code layout optimizations. Thanks to @aaupov for his review and comments.
  • I wrote a new section about memory profiling. It discusses how to measure memory usage (VSZ and RSS), how to analyze heap allocations and more. (chapter 7, pull request #27)
  • I've made some big updates to chapter 8. "Optimizing Memory Accesses". I wrote about some new data structure reorganization techniques that were not present in the first edition. Also, I improved two sections about dynamic memory allocation and what to do when you hit memory bandwidth limitation.
  • I have fixed ~10 TODOs. There are still ~60 items left.
  • I fixed many proofreading comments (thanks to Ciaran).

Full Changelog: Q4.2023...Q1.2024