[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)