Submission timeline
2007–2026One slot for every year since HN launched. Height is that year's peak points; orange marks a 100+ point or 50+ comment breakout. Select a bar to open its strongest thread.
First comments on top threads
HN comment orderIf cache coherence is relevant to you, I strongly recommend the book “A Primer on Memory Consistency and Cache Coherence”. It’s much easier to understand the details of coherency from a broader perspective, than an incremental read-a-bunch-of-blogs perspective. I found that book very readable, and it cleared up most misconceptions I had. It also teaches a universal vocabulary for discussing coherency/consistency, which is useful for conveying the nuances of the topic. Cache coherence is not super relevant to most…
This article gives the impression that everything is the compiler's fault when you end up with conflicting reads in different cores, but that's not right. From the point of view of someone outside the CPU, yes you can say that simultaneous reads might never give different answers. But everything happening at that level barely resembles the original software. Dozens of instructions are happening at any moment, overlapping each other, starting and finishing in very different orders from how they're stored…
Here's my favorite practically applicable cache-related fact: even on x86 on recent server CPUs, cache-coherency protocols may be operating at a different granularity than the cache line size. A typical case with new Intel server CPUs is operating at the granularity of 2 consecutive cache lines. Some thread-pool implementations like CrossBeam in Rust and my ForkUnion in Rust and C++, explicitly document that and align objects to 128 bytes [1]: /** * @brief Defines variable alignment to avoid false sharing…
A lot of these 'misconceptions' are absolutely true though, for certain architectures. Every architecture has a specific set of guarantees about memory ordering and the coherence protocol used is an implementation detail relevant only to performance. The article is about x86 but i.e. ARM has much weaker guarantees about memory ordering. Relying on the behavior of a specific architecture here is not a good idea. This Linux document about memory barriers[1] repeatedly calls out problems specific to the Alpha…
The first top-level comment from each of the four biggest threads, in HN’s own order. Excerpts are shortened; open a comment for full context.
- Breakout years
- 3
- Total points
- 816
- Total comments
- 298
100+ points or 50+ comments
reference only — not used in Hall rules or ranking
reference only — not used in Hall rules or ranking
Every submission
| Date | Title as submitted | By | Points | Comments |
|---|---|---|---|---|
| 2018-04-29 | Myths Programmers Believe about CPU Caches | whack | 4 | 0 |
| 2018-08-02 | CPU cache misconceptions, and the MESI cache coherence protocol | ingve | 87 | 15 |
| 2019-11-20 | Myths Programmers Believe about CPU Caches (2018)First breakout · Best thread | noego | 366 | 119 |
| 2021-04-13 | Myths Programmers Believe about CPU Caches (2018) | Tomte | 2 | 0 |
| 2021-12-22 | Myths Programmers Believe about CPU Caches (2018) | Tomte | 16 | 0 |
| 2022-04-14 | Myths programmers believe about CPU caches (2018) | Kinrany | 7 | 0 |
| 2022-07-21 | Myths Programmers Believe about CPU Caches (2018) | Tomte | 2 | 0 |
| 2023-06-14 | Myths Programmers Believe about CPU CachesHall induction | whack | 176 | 138 |
| 2025-10-31 | Myths Programmers Believe about CPU Caches (2018)Latest 20+ point return | whack | 156 | 26 |
