Topics /

Systems & Performance

The most popular blog posts about systems & performance on Hacker News. 343 posts.

2020
92

Fast UTF-8 validation

One of the most common "data type" in programming is the text string. When programmers think of a string, they imagine that they are dealing with a list or an array of characters. It is often a "good enough" approximation, but reality is more complex. The characters must be encoded into bits in some way. Most ……

101

ARM MacBook vs. Intel MacBook: A SIMD Benchmark

In my previous blog post, I compared the performance of my new ARM-based MacBook Pro with my 2017 Intel-based MacBook Pro. I used a number parsing benchmark. In some cases, the ARM-based MacBook Pro was nearly twice as fast as the older Intel-based MacBook Pro. I think that the Apple M1 processor is a breakthrough ……

102

It Is Never a Compiler Bug Until It Is

Last week I was trying to add some testing code to libsecp256k1 and I was pulling out my hair trying to get it to work. No amount of printf was working to illuminate what I was doing wrong. Finally, out of desperation, I thought I would do a quick check to see if there are any compiler bugs related to memcmp , and lo…

105

The compositor is evil

First, I want to make it clear that I’m not accusing the compositor of true evil, which I define roughly as deliberately causing suffering. There’s unfortunately too much of that in the world. I mean it in the more metaphorical sense that it causes serious problems and forces other parts of the system to be more…

107

A Requiem for a Dying Operating System (1994)

These views generally result in my being labeled a Luddite by the Unix priesthood. But Ned Ludd was right --- the new machines did not make conditions better for ordinary working folk: the people whose conditions were immediately improved were those who owned the machinery, and whose profits thereby increased…

108

Against Essential and Accidental Complexity

In the classic 1986 essay, No Silver Bullet , Fred Brooks argued that there is, in some sense, not that much that can be done to improve programmer productivity. His line of reasoning is that programming tasks contain a core of essential/conceptual 1 complexity that's fundamentally not amenable to attack by any…

110

When Parallel: Pull, Don't Push

I’ve noticed a small pattern across a few of my projects where I had vectorized and parallelized some code. The original algorithm had a “push” approach, the optimized version instead took a “pull” approach. In this article I’ll describe what I mean, though it’s mostly just so I can show off some pretty videos…

115

RISC-V OS using Rust: Filesystems

I have taught operating systems at my university, so I will link my notes from that course here regarding the virt I/O protocol. This protocol has changed over the years, but the one that QEMU implements is the legacy MMIO interface.