Topics /
Systems & Performance
The most popular blog posts about systems & performance on Hacker News. 4,389 posts.
Time is not a synchronization primitive
Xe Iaso's personal website.
Intel i7 loop performance anomaly
Recently I've been doing some benchmarking and came upon a very surprising behavior from a number of different Intel i7 CPUs (it manifests on Sandy Bridge and Haswell desktop-class CPUs as well as Sandy Bridge-EP Xeon CPUs).
What Microchip doesn't (officially) tell you about the VSC8512
This is part 3 of my ongoing series about LATENTRED, my project to create an open source 1U managed Ethernet switch from scratch.
Windows GOG DOS Games on M-Series Macs
GOG is great. I bought a few old games from them: SimCity 2000, Theme Hospital, Syndicate Plus. And by old games, I mean games from my childhood that still
Power, frequency, management: how M1 E cores win
macOS manages the loading and frequency of M1 cores according to the QoS set, and rules which differ between the original M1 and the M1 Pro.
Optimizing Guile Scheme
Guile is a rather niche language that I love dearly. Guile is a Scheme dialect that features an advanced optimizing bytecode compiler, a JIT compiler, and a modest set of developer tools for inspecting and debugging. Through my time spent developing Chickadee , a game programming library, I have gotten quite familiar…
The curious case of a memory leak in a Zig program
Digs into a unexpected memory leak when using Zig's FixedBufferAllocator
Linux Kernel vs. DPDK: HTTP Performance Showdown
A head-to-head performance comparison between the Linux kernel's network stack, and a kernel-bypass stack powered by DPDK.
The Future Needs Files
For many mobile users, files are like dinosaurs, a holdover from the bygone desktop era. Sure, they “work” but, they’re mostly there because, you know, ancient history. I’ve discussed this issue for the last 2 years and I usually get some version of “get over it grandpa”.
APFS – A Backup Software Developer’s Perspective
A backup-software developer's deep dive into Apple's APFS file system — snapshots, cloning, space sharing, and what it all means for reliable Mac backups.
How copying an int made my code 11 times faster
I have moved off Medium to a personal blog. Click here for the updated post.
Time protection: the missing OS abstraction
Time protection: the missing OS abstraction Ge et al., EuroSys’19 Ever since the prominent emergence of timing-based microarchitectural attacks (e.g. Spectre, Meltdown, and friends) I’ve been…
Anatomy of a Linux DNS Lookup
Since I work a lot with clustered VMs , I’ve ended up spending a lot of time trying to figure out how DNS lookups work. I applied ‘fixes’ to my problems from StackOverflow without really understanding why they work (or don’t work) for some time.
Faster Integer Parsing
Back with a post after 6 years of silence. If you had to parse a microsecond-resolution epoch timestamp as quickly as possible, how would you do it? We’ll take a look at using compiler intrinsics to do it in log(n) time.
Threads and Goroutines
So after several years of reading oversimplified and flat out incorrect comments about threads and fibers/goroutines/async/etc and fighting this reaction: I’ve decided to write my own still-over-simplified all in one guide to the difference between a couple popular threads and fiber implementations. In order to…
Coding for SSDs
Translations: This article was translated to Simplified Chinese by Xiong Duo and to Korean by Matt Lee (이 성욱). Introduction I want to make solid-state drives (SSDs) the optimal storage solution for my key-value store project. For that reason, I had to make sure I fully understood how SSDs work, so that I can optimize
How Computers Boot Up (2008)
The previous post described [motherboards and the memory map] memory-map in Intel computers to set the scene for the initial phases of boot. Booting is an involved, hacky, multi-stage affair - fun st
A tale about fixing eBPF spinlock issues in the Linux kernel
A system freeze led us deep into Linux spinlock internals, where we helped find not one but three bugs in the kernel's resilient locking code used by eBPF.
The network is reliable
I’ve been discussing Jepsen and partition tolerance with Peter Bailis over the past few weeks, and I’m honored to present this post as a collaboration between the two of us. We’d also like to extend our sincere appreciation to everyone who contributed their research and experience to this piece.
Design Issues in LLVM IR
On the whole, LLVM has a well-designed intermediate representation (IR), which is specified in the language reference . However, there are a number of areas where design mistakes have been made. And while the LLVM project is generally open to addressing such issues, mistakes in core IR design tend to be firmly…
CPU Counters on Apple Silicon: article + tool
Last time I wrote about profiling in Zig on Apple Silicon, I touched on PMU counter profiling. This time I decided to go further and create my own tool to fetch all available counters for Apple Silicon processors (M1, M2, and later). Brief explanation of PMU counters PMU (Performance Monitoring Unit) counters are…
Systemd through the eyes of a musl distribution maintainer
Welcome back to FOSS Fridays! This week, I’m covering a real pickle. I’m acutely aware of the flames this blog post will inspire, but I feel it is important to write nevertheless. I volunteer my ti…
Why use old computers and operating systems?
On this blog, I write about the various computers I use and about the operating systems I use on them. Apart from Windows 7, which is relatively modern, these include Mac OS 10.6 Snow Leopard, which at this point is quite old, and Mac OS 9, which is practically ancient. I’d like to talk a bit about why I use such old…
APFS changes in Big Sur: how Time Machine backs up to APFS
APFS adds 6 volume roles, including one which supports Time Machine backups. And per-file encryption is coming.
JIT Compiling Code in 5μs
Build a copy-and-patch JIT compiler in Rust, generate ARM64 machine code, and benchmark it against an interpreter and handwritten implementation.
Zig’s Io.Threaded is neat
std.Io.Threaded is one of the implementations of Zig's new Io interface that enables concurrency. This is a boring just use threads impl. I personally find it neat though --- it does this weird thing that I wanted to do for ages, that to my knowledge no one else is doing properly, and implements it better than I…