Topics /
Systems & Performance
The most popular blog posts about systems & performance on Hacker News. 4,387 posts.
ZeroMQ instead of HTTP, for internal services
A post by August Lilleaas, published July 22, 2013.
Bought myself an Ampere Altra system
There are tools and there are toys. I bought myself a tool.
Speeding up Unreal Editor launch by not spawning unused tooltips
If there is one thing the Unreal Engine doesn’t suffer from, it is it’s lack of features. Over the past years it has been transformed from “just” a game engine into an ̵…
Speed Without Wizardry
Vyacheslav Egorov, who goes by mraleph on the Web, wrote a responseto my article “Oxidizing Source Maps with Rust and WebAssembly”titled “Maybe you don’t nee...
V8: A Tale of TurboFan
Personal website of Benedikt Meurer, JavaScript Engine Hacker and Programming Language Enthusiast.
Inside the C Standard Library
After diving into the C language through K&R, and then studying portability (see C Portability Lessons from Weird Machines ), my next challenge was to take a systematic look at the standard library. To do this I worked through P. J. Plauger’s book The Standard C Library (ISBN 978-0131315099) where he examines an…
Writing GUI applications on the Raspberry Pi without a desktop environment (2019)
In a previous article, I explained how I set up a TFT LCD screen on my Raspberry Pi. Because I had been previously using my Pi as a headless server, I hadn’t installed a desktop environment. I wanted to add a lightweight heads-up display to the server, and I wanted a graphical application that could operate without X…
Understanding every byte in a WASM module
In my last post, we explored how to build WASM modules, both with and without WASI support, using Clang. In a comment on Reddit, it was mentioned that much of the setup I walked through in that post could be avoided by just leveraging Zig’s WASI supprt. This is a great point, and I would recommend doing the same. The…
Linux's Bedtime Routine
How does Linux move from an awake machine to a hibernating one? How does it then manage to restore all state? These questions led me to read way too much C in trying to figure out how this particular hardware/software boundary is navigated.
Queues Don't Fix Overload
People misuse queues all the time. The most egregious case being to fix issues with slow apps, and consequently, with overload. But to say why, I'll need to take bits of talks and texts I have around the place, and content that I have written in more details about in Erlang in Anger .
Jailbroken iOS can't run macOS apps – I spent a week to find out why (2021)
I ran command line macOS tools, such as Bash and Geekbench, on a jailbroken iPhone by replacing iOS’s dyld shared cache (all of iOS’s code) with macOS’s. However, graphical apps will never work: macOS’s WindowServer won’t start, since iOS’s drivers are too different.
ZFS: Apple's new filesystem that wasn't (2016)
Prologue (2006) I attended my first WWDC in 2006 to participate in Apple’s launch of their DTrace port to the next version of Mac OS X (Leopard). Apple…
Why Do Companies Still Use Microsoft Windows For Displays?
As I was exiting Oxford Railway Station, I glanced at this screen showing the bus departure times. Notice anything odd about it? sigh Yet again someone has shoehorned Microsoft Windows into a product it is completely unsuitable for. Why does a screen which displays a fairly basic set of information need to be running…
Writing to the Framebuffer (2018)
I’ve been thinking about cross platform GUIs, and one question led to the next and eventually I was asking: how do pixels end up on the monitor? A pretty neat stack overflow response answers:
Async I/O on Linux in databases
I've been working on a complex multi-model database for a few weeks now, and recently I took time to simplify and test out an idea I had on a simple key-value database. I started with the basics: A hash table in memory, a simple append-only log
Using Java's Project Loom to build more reliable distributed systems
Building distributed databases is very difficult. There are lots of clever ideas you can put into a distributed database, but making the ideas work well together in a real system can be very challenging because different decompositions of the same problem can massively affect how difficult it is to solve, and bugs are…
Running Your Own AS: BGP on FreeBSD with FRR, GRE Tunnels, and Policy Routing
How I obtained my own AS number and IPv6 prefix, set up a FreeBSD BGP router with FRR, and built a tunnel overlay to bring globally routable addresses to servers that already have provider-assigned...
How to speed up the Rust compiler
It has been five months since my last general update on the Rust compiler’s performance. Let’s see what has happened in that time.
1.1B Taxi Rides Using OmniSciDB and a MacBook Pro
Benchmarks & Tips for Big Data, Hadoop, AWS, Google Cloud, PostgreSQL, Spark, Python & More...
Optimizing Large-Scale OpenStreetMap Data with SQLite
The personal website of JT Archie. Includes a blog, work ethic, and projects they have worked on.
On Sharding
If you need to handle really a lot of traffic, there’s only one way to do it: sharding. Which is to say, splitting up the incoming requests among as many hosts (or Lambda functions, or message brokers, or data streams) as you need. Once you get this working you can handle an essentially unlimited request volume. Of…
Virtual Memory with 256 Bytes of RAM
I just finished updating my C compiler and minimal CPU specification to include virtual memory. The process of adding virtual memory support to a CPU, a kernel, and a compiler toolchain has made me realize that there is a lack of good explanations for how all of these parts fit together. I also realized that a…
Setenv Is Not Thread Safe and C Doesn't Want to Fix It
You can't safely use the C setenv() or unsetenv() functions in a program that uses threads. Those functions modify global state, and can cause other threads calling getenv() to crash. This also causes crashes in other languages that use those C standard library functions, such as Go's os.Setenv ( Go issue ) and Rust's…
What's wrong with enterprise Linux
An examination of what is wrong with the Enterprise Linux model and a recommendation for a middle ground.
A Review of Linux on Surface Pro 4
I bought a Surface Pro 4 in 2016. It has an Intel Core m3-6Y30 CPU and 4GB memory. The spec is not that impressive even compared to an average laptop released years earlier. On the other hand, the form factor is very attractive to me: at a very low price, you get a tablet with a beautiful HiDPI 2k screen, a pressure…
How Not to Support Desktop GNU+Linux, Zoom Edition
<small>Pssst! Formatting messed up? Add ".md" to the url ✨ If you're stuck using Zoom, jump on [one](https://community.zoom.com/t5/Meet...