Topics /
Systems & Performance
The most popular blog posts about systems & performance on Hacker News. 553 posts.
WebGPU computations performance in comparison to WebGL
WebGPU – the successor of WebGL, a brand new API to utilize GPUs in the browser. It is promised to be available in regular Chrome in Q1 2022. In comparison to WebGL, WebGPU promises better performance and better compatibility with modern hardware, but the most recognizable feature of WebGPU is a special API for…
Huawei ExaGear: x86_64 apps on Arm 64-bit Linux systems
Note: This post is only kept up for historical reasons. The current ExaGear EULA doesn’t allow using ExaGear outside of Huawei Kunpeng processors.
I got nerd sniped into benchmarking legacy x86 instructions (2019)
How I got nerd sniped into benchmarking legacy x86 instructions
We scaled the GitHub API with a sharded, replicated rate limiter in Redis
Adventures in leveling up our API rate limiting infrastructure
What I learned from Erlang about resiliency in systems design (2019)
Failure in computer systems is inevitable. Adopting Erlang's philosophy of "Let it crash" at the many layers of abstractions in software can have a huge positive impact on resiliency.
Wayland in 2021
Running Wayland on Linux in 2021
T-Wand: beating Lucene in less than 600 lines of code
The design of Datalevin's compact Clojure search engine, its T-Wand algorithm, and the full-text search benchmarks comparing it with Apache Lucene.
Ideal divisors: when a division compiles down to just a multiplication
The division instruction is one of the most expensive instruction in your CPU. Thus optimizing compilers often compile divisions by known constants down to a multiplication followed by a shift. However, in some lucky cases, the compiler does not even need a shift. I call the corresponding divisors ideal. For the math…
Pumpkin OS: x64 port/re-implementation of PalmOS
Pumpkin is the name I have given to my port of PalmOS running on the x86 architecture. Please refer to this article for basic information on this project. Also look for other articles in the PalmOS…
Qubes-Lite with KVM and Wayland
I've been running QubesOS as my main desktop since 2015. It provides good security, by running applications in different Xen VMs. However, it is also …
Cranelift, Part 2: Compiler Efficiency, CFGs, and a Branch Peephole Optimizer
This post is the second in a three-part series about Cranelift . In the first post , I described the context around Cranelift and our project to replace its backend code-generation infrastructure, and detailed the instruction-selection problem and how we solve it. The remaining two posts will be deep-dives into some…
Digging into Linux namespaces – part 1
Process isolation is a key component for containers. One of the key underlying mechanisms are namespaces. We will explore what they are, and how they work, to build our own isolated container and better understand each piece.
gRPC Is Easy to Misconfigure
Google's gRPC is an RPC system that supports many languages, and is relatively widely used. I think its popularity is due to being used for parts of Docker and Kubernetes. I think gRPC is mostly fine, but it is surprisingly easy to screw up by misconfiguring it. Part of that is because RPC systems are challenging to…
Tiny ELF Files: Revisited in 2021
Quick edit: While I work on a proper update, I'll note here that several posters on reddit and hackernews have pointed out ways to bring the total size of the program down to 105 bytes while still printing the full "Hello, world!" Much credit goes to Josh Triplett , who produced the 105-byte version which you can find…
Where are we going from here? Software engineering needs formal methods
The job of a software engineer is not to produce code, but to solve problems; we just happen to solve most of those problems by producing code. Ultimately, producing code is hard, and we need help. That's why GitHub's Copilot is exciting, but it's far from ideal, and it's the tip of the iceberg of what's been done and…
Imaging mounted disk volumes under duress
Backups are critical. If you are lucky and organised you have a set of useful backup primitives, such as Point in Time snapshots on your Infrastructure As A Service (IaaS), your disk array controller, or volume manager. However there always seems to be some critical machine in my life that does not fall into these…
Explainer: .DS_Store Files
Many folders have them. They’re so invisible that you can’t even see them when you show hidden files. And the only way you know they’re there is when they cause problems.
Perfecting GLFW for Zig, and finding lurking undefined behavior that went unnot
Today, I am announcing mach/glfw: Ziggified GLFW bindings with 100% API coverage, zero-fuss installation, cross compilation, and more.
Debugging random slow writes in PostgreSQL
Understanding & mitigating randomly slow writes in PostgreSQL
Kernel Pwning with eBPF: A Love Story
How are low-level vulnerabilities exploited and detected in the modern age? This expert guide walks you through the ins and outs of eBPF and Kernel security.
Load testing is hard and the tools are not great
If you're building an application that needs to scale—and we all tell ourselves that we are—then at some point you have to figure out if it does or not. This is where load testing comes in: if you want to see whether or not your application can handle scale, just generate scale and see if it can handle it! It sounds…
Unit testing a TCP stack (2015)
Thoughts on how to write automated tests for a TCP implementation.
Latency Sneaks Up on You
As systems get big, people very reasonably start investing more in increasing efficiency and decreasing costs. That’s a good thing, for the business, for the environment, and often for the customer. Much of the time efficient systems have lower and more predictable latencies, and everybody enjoys lower and more…
How to Write a Computer Emulator
I wrote this document after receiving large amounts of email from people who would like to write an emulator of one or another computer but do not know where to start. Any opinions and advices contained in the following text are mine alone and should not be taken for an absolute truth. The document mainly covers…
A look at LLVM: comparing clamp implementations
Please note that this is not an endorsement or criticism of either of these languages. It’s simply something I found interesting with how LLVM handles code generation between the two. This is an implementation quirk, not a language issue. Update (April 9, 2021): A bug report was filed and a fix was pushed! The LLVM…
Leaving No Pixel Behind: Three Years in Xenia's GPU Emulation
xenia is a BSD licensed open source research project for emulating Xbox 360 games on modern PCs.
ARM64EC: Building Native and Interoperable Apps for Windows 11 on ARM
Today, we’re announcing ARM64EC (“Emulation Compatible”), a new way to build apps for Windows 11 on ARM. With the latest Visual Studio tools in preview and the Windows 11 Insider SDK, you'll be able to take advantage of ARM64EC to incrementally