Topics /

Systems & Performance

The most popular blog posts about systems & performance on Hacker News. 6,942 posts.

Any year
1141

How does rsync work?

This post is the third article in a series of blog posts about rsync, see the Series Overview. With rsync up and running, it’s time to take a peek under the hood of rsync to better understand how it works. How does rsync work? When talking about the rsync protocol, we need to distinguish between:

1144

GC progress from JDK 8 to JDK 17

JDK 17 has been out for a few months and it’s not just packed with new language features. The performance boost compared to older JDK versions is also really significant. It becomes especially clear when compared to the previous LTS releases, JDK 8 and JDK 11. Much of the improved performance comes from new features…

1149

A 100x speedup with unsafe Python

We're going to speed up some numpy code by 100x using "unsafe Python." Which is not quite the same as unsafe Rust, but it's a bit similar, and I'm not sure what else to call it... you'll see. It's not something you'd use in most Python code, but it's handy on occasion, and I think it shows "the nature of Python” from…

1150

A Real Life Off-by-One Error

The Championnats d’Europe d’Escalade (climbing) in Villars-sur-Ollon has just finished. I couldn’t make it to all the events, but did see the finals of the “Speed” event. It’s a series of head-to-head elimination races up a 15m tall wall, resulting in an eventual victor after enough rounds.

1163

Nanosecond timestamp collisions are common

I was wondering: how often do nanosecond timestamps collide on modern systems? The answer is: very often, like 5% of all samples, when reading the clock on all 4 physical cores at the same time. As a result, I think it is unsafe to assume that a raw nanosecond timestamp is a unique identifier.

1165

How to build software like an SRE

I’ve been doing this “reliability” stuff for a little while now (~5 years), at companies ranging from about 20 developers to over 2,000. I’ve always cared primarily about the software elements I describe as living “outside” the application – like, how does it get its configuration? What kinds of instances does it run…

1168

The Journey Before main()

A while back, I worked on a RISC-V-based userspace simulator for fun. In doing so, taught myself a lot more than I wanted to know about what happens in-between when the Kernel is asked to run a program, and when the first line of our program’s main function is actually executed. Here’s a summary of that rabbit hole.