#microarchitecture
Wiki 10
- Compiler codegen luck — a cosmetic edit that ran 6x faster A one-line C rewrite (*p++ = x vs *p = x; p++;) flips Clang between a branch and a branchless csel/cmov, changing quicksort speed 6x
- Conditional move (cmov / csel) A branchless instruction that picks one of two values from a flag; faster than a branch only when the branch is unpredictable
- Eliminating Golang bounds checks with unsafe unsafe.SliceData + unsafe.Add drops a bounds check the compiler won't — 2x faster LE loads
- Everyone Should Know SIMD Mitchell Hashimoto's five-step shape for everyday SIMD, worked through a Ghostty scan loop in Zig
- Golang maps after Swiss Tables What Golang 1.24 replaced the bucket map with, and why 30% in microbenchmarks is 1.5% in production
- Shared memory consistency from scratch, part 1: causality Alloth designs a deliberately permissive multiprocessor to derive memory-model rules, and argues the C++11/20 atomics model gets causality wrong
- Wasmi 2.0 interpreter engineering How Wasmi 2.0 got ~2.2x faster than 1.0 — threaded dispatch, accumulator registers, flat instance layout, lock-free code map, and a Rust codegen trap
- Watching Green Tea move through the Golang heap Phil Eaton measures Golang 1.26's Green Tea GC with perf, and the sparse pages it can't reclaim
- Why cache padding uses 128 bytes on a 64-byte cache line Ivan Boldyrev benchmarks 64 vs 128-byte atomic padding — Skylake shows it, Ice Lake and M1 don't
- Write atomicity (multi-copy atomicity) Whether a write is invisible to every processor until all cached copies are invalidated; MCA vs oMCA vs nMCA, and which CPUs guarantee it