Topics /
Systems & Performance
The most popular blog posts about systems & performance on Hacker News. 4,390 posts.
Feature Casualties of Large Databases
Databases shed important RDMS features as they get big. Examining why this tends to be the case, and some ideas for preventing it.
How to port your OS to EC2 (2018)
You're going to want to make some changes to what goes into that disk image later, but for now just build a disk image.
Adding runtime benchmarks to the Rust compiler benchmark suite
This post describes the design and implementation of a runtime benchmark suite for measuring the performance of Rust programs, which was recently added into the Rust compiler suite. I have recently blogged about how the whole benchmark suite works, so feel free to read that post first if you want to gather a bit more…
The occasional ECONNRESET
Two services running on the same machine. One of them opens a listening TCP socket bound to localhost, the other one connects to that. They exchange data. Every now and then , the service that initiated the connection gets an ECONNRESET while reading data from the socket -- but no other errors show up in the logs, no…
Sorry, Wrong Number: Debugging a Crash Under Wine
A blog about software.
UEFI Programming – First Steps (2009)
In this article, I will describe steps needed to start on with development of real UEFI applications on x86 PC, and share some practical experiences with problems doing so. I will focus on 64-bit version of UEFI, because the 32-bit version isn't much used in this area (most likely due to Microsoft decision not to…
The Two Abstractions of System Design: Hide or Reduce
When talking about TLA+, I keep referring to "abstraction" as the most important thing to learn . And it is about the hardest to learn as w...
High Performance Z80 Emulation
…wherein I talk about my latest Z80 emulation adventures.
Actix Web: Optimization Amongst Optimizations
It’s already been a great reading day for retrospectives on the last ten years / predictions for the next. Here’s to hoping that everyone had a good break (or at least a few days off), set or didn’t set resolutions, and is refreshed and ready for what comes next.
Computer Networking Introduction: Ethernet and IP – Heavily Illustrated (2021)
What is a LAN? What is a network segment? How are L1, L2, and L3 segments related? What does it take to send an IP packet from one host to another? What is the difference between LAN, VLAN, and VXLAN?
QEMU AioContext removal and how it was done
This post is about the AioContext lock removal in QEMU 9.0 (planned for release in 2024), how we got here, and what it means for multi-threa...
1.1B Taxi Trips on BrytlytDB 2.0
Benchmarks & Tips for Big Data, Hadoop, AWS, Google Cloud, PostgreSQL, Spark, Python & More...
Queues should be empty
I’ve been writing a pubsub listener for work recently and had this silly “shower thought”: the ideal queue should be empty. Why? If the queue is not empty, it means that whatever job is consuming from the queue is not keeping up with messages coming into it. Ok, then if queues are supposed to be empty, then what are…
Real-Time Garbage Collection Is Real
Real-Time Garbage Collection (RTGC) tests the limits of what we typically think is possible in production software. You might hear “Real-Time” and “Garbage Collection” together and think “If you truly need real-time guarantees, why would you use a garbage collected language?” or “How is real-time Garbage Collection…
We Need More Operating Systems
A blog about computer science education. Projects, resources, and ideas for teaching, learning, and using computer science. By a teacher for teachers.
Commodore 900: Unix-like workstation/server that was eclipsed by Amiga (2020)
Some time ago I acquired a Commodore 900 computer. It was originally owned by one of the engineers who worked on the project but it needed some attention to get it to work.
This is the mail system
This is how we tell hundreds of millions of computer users that something has gone wrong:
Multi-Agentic Software Development Is a Distributed Systems Problem
Recently, I've been thinking a lot about scaffolding and languages for managing systems of LLMs coordinating with each other — new programming languages might be the ideal solution for this area.
Evaluating M3 Pro CPU Cores: General Performance
Using assembly language test loops to understand the differences between M1 Pro and M3 Pro CPU cores casts new light on their differences.
Using FireWire on a Raspberry Pi
After learning Apple killed off FireWire (IEEE 1394) support in macOS 26 Tahoe, I started looking at alternatives for old FireWire equipment like hard drives, DV cameras, and A/V gear. I own an old Canon GL1 camera, with a 'DV' port. I could plug that into an old Mac (like the dual G4 MDD above) with FireWire—or even…
A 1958 UNIVAC airline reservation system
I had thought that SABRE, a joint development of IBM and American Airlines, was the first computerized airline reservation system, going live in 1960. However, “The Univac Air […]
Can we do better than our C compiler?
Today, I wanted to see if I could out-compile my C compiler. I added a hand-compiled assembly version of echo from our previous coding exercise and added a new make target, make asm , that will assemble it. Let's look at our hand-compiled assembly and compare it to our C compiler and ask whether or not it was worth it.
Starbucks Does Not Use Two-Phase Commit (2004)
People often criticize asynchronous messaging solutions as too complicated and cumbersome
Bfs 3.0: The Fastest Find Yet
bfs is a tool I wrote to do b readth- f irst s earch through a filesystem. It started out simply enough, but over the years it’s grown to include almost every feature from every other find implementation I could find, plus many of its own innovations. The new 3.0 release series includes the biggest new feature so far…