[HN Gopher] Memory Subsystem Optimizations
___________________________________________________________________
Memory Subsystem Optimizations
Author : mfiguiere
Score : 36 points
Date : 2026-01-01 17:52 UTC (5 hours ago)
(HTM) web link (johnnysswlab.com)
(TXT) w3m dump (johnnysswlab.com)
| jeffbee wrote:
| I find this site interesting because of its mixture of good topic
| choice and inaccurate details. I think it's generated by LLMs.
|
| Specifically catching my eye in this collection of articles is
| the highly misleading one about huge pages. All recent Linux
| distributions have THP set to "madvise" by default. Many programs
| exploit THP automatically, including any Go program and any JVM
| program with a flag set. The tcmalloc shared library that comes
| with Ubuntu is probably the single worst way to experience huge
| pages. Mi-malloc is the better choice if you must preload a
| library, but there are even better choices. Explicit huge pages
| are little-used because managing them is annoying. Finally,
| latest Linux kernels have features called "folios"and "mTHP" that
| make THP even smoother.
| foltik wrote:
| > Mi-malloc is the better choice if you must preload a library,
| but there are even better choices.
|
| What's a better choice?
| jeffbee wrote:
| Linking the allocator into your program when you build it,
| instead of overriding just malloc and free at runtime. Then
| you can choose between jemalloc, mi-malloc, TCMalloc, or
| whatever you please, and get better features such as C++
| sized delete. Rust makes this easy with for example "use
| tcmalloc_better::TCMalloc".
| kev009 wrote:
| The huge page article is sequitur with official documentation
| like https://docs.redhat.com/en/documentation/red_hat_enterpris
| e_.... THP can only issue up to 2MB pages on amd64 so it's not
| necessarily a silver bullet for large persistent consumers like
| a DB or GC language and worth knowing about the older methods.
|
| To me they look like marketing posts, but they aren't void of
| effort or meaning as a quick intro to various topics.
| hairband_dude wrote:
| It's been around for a while: https://web.archive.org/web/20230
| 602031306/https://johnnyssw.... Not sure if the newer articles
| are LLM/AI assisted though.
| matu3ba wrote:
| The blog looks nice, especially having simple to understand
| numbers. To me the memory subsystem articles are missing the more
| spicy pieces like platform semantics, barriers, de-virtualization
| (latter discussed in an article separate of the series). In the
| other articles I'd also expect debugging format trade-offs (DWARF
| vs ORC vs alternatives), virtualization performance and
| relocation effects briefly discussed, but could not find them.
| There are a few C++ article missing: 1. cache-friendly structures
| in C++, because standard std::map etc are unfortunately not
| written to be cache-friendly (only std::vector and std::deque<T>
| with high enough block_size), ideally with performance numbers,
| 2. what to use for destructive moves or how to roll your own (did
| not make it into c++26).
| adsharma wrote:
| 18 blog posts and very limited mention of NUMA and HT?
|
| https://adsharma.github.io/more-performance-hints/
___________________________________________________________________
(page generated 2026-01-01 23:00 UTC)