Topics /
Systems & Performance
The most popular blog posts about systems & performance on Hacker News. 4,388 posts.
More Molly Guards
A blog about software craft and quality
We'd be better off with 9-bit bytes
A number of 70s computing systems had nine-bit bytes, most prominently the PDP-10, but today 1 [ 1 Apparently, it was the System/360 that really set the standard here. ] all systems use 8-bit bytes and that now seems natural. 2 [ 2 Though you still see RFCs use "octet", and the C standard has a CHAR_BITS macro, to…
Why software ends up complex
Complexity in software, whether it’s a programming languages, an API, or a user interface, is generally regarded as a vice. And yet complexity is exceptionally common, even though no one ever sets out to build something complex. For people interested in building easy to use software, understanding the causes of…
Microsoft disables Windows Update when Meltdown/Spectre registry key isn't set
Last week, Microsoft issued January’s cumulative security fixes for January 2018. Although the media focus has been around “Meltdown” and…
Closing a stale SSH connection
Suppose you’re connected to a remote host with SSH and after a while the SSH session goes stale. The terminal is unresponsive and no keypress seem to take effect. There might be something with the network, the remote host is restarting or maybe your machine has been in hibernation, there could be multiple reasons for…
When Apple Built a Mac OS Running on Top of Solaris and HP-UX
Macintosh Application Environment for Unix -- from back in 1994.
Why is Wednesday, November 17, 1858 the base time for OpenVMS?
The URL you requested is no longer available. Please contact the site owner directly if you need to access their files. They are responsible for migrating their content to another site.
Zopfli Optimization: Literally Free Bandwidth
In 2007 I wrote about using PNGout to produce amazingly small PNG images. I still refer to this topic frequently, as seven years later, the average PNG I encounter on the Internet is very unlikely to be optimized. For example, consider this recent Perry Bible Fellowship cartoon. Saved directly from
Firefox 64 built with GCC and Clang
One of my tasks (as GCC maintainer of the inter-procedural optimization framework) is to make sure that it works well with real world progra...
AVX-512: when and how to use these new instructions
Note: This blog post from 2018 predates the Intel Ice Lake (Sunny Core) and AMD Zen 4 processors. These newer processors are not affected by the issues described in this blog post. Our processors typically do computations using small data stores called registers. On 64-bit processors, 64-bit registers are frequently…
Erlang Scheduler Details and Why They Matter
Hamidreza Soleimani's Blog - Just about what I know
Think Before You Parallelize: A tour of parallel abstractions
In 2005 Intel release the Pentium D, which began the era of multi-core desktop CPUs. Today, even our phones have multiple cores. Making useof all of those c...
Thread pools: How do I use them?
Thread pools! How do I use them?
How to Safely Think in Systems
While there are a decent number of folks out there modeling systems, there’s a much larger group of folks who think of themselves as systems thinkers but utilize techniques like modeling rather casually (a polite way of saying that they don’t use them). Even with modeling tools available, I’ve often taken the shortcut…
Are Jump Tables Always Fastest?
tl;dr: I make a petty point about premature optimization; don't go out and rewrite your switch statements as binary searches by hand; maybe do rewrite your jump tables as switch statements, though.
Lock-free programming for the masses
Efficient concurrent programming libraries are essential for taking advantage of fine-grained parallelism on multicore hardware. In this post, I will introduce reagents , a composable, lock-free concurrency library for expressing fine-grained parallel programs on Multicore OCaml . Reagents offer a high-level DSL for…
The Linux perf command rocks
A summary of Linux profiling/monitoring tools
OS X Isn't for Developers
Written pieces, talks, and other bits by Zach Holman.
The legend of “x86 CPUs decode instructions into RISC form internally” (2020)
A dive into what x86 instruction are decoded into various processors, to determine the truth of the idea that they're just RISC-like internally.
What every IT person needs to know about OpenBSD (2021)
How to have fun with the world’s most important free software project "Functional, free and secure by default", OpenBSD remains a crucial yet largely unacknowledged player in the open source field. This talk aims to highlight the project's signature security features and development practices -- razor sharp focus on…
Microservices Considered Harmful (2019)
A recent trend in our industry is the software architecture move from a monolith app to microservices, often with a related blog post explaining how much better everything is after. A recent blog post by neo-bank Monzo explains that they have reached the crazy amount of 1500 microservices (a ratio of ~10 microservices…
Windows Server 2025 Runs Better on ARM
My personal website and blog
Web Apps on macOS Sonoma 14 Beta
The personal blog of Thomas Steiner
Libinput's bus factor is 1 (2019)
A few weeks back, I was at XDC and gave a talk about various current and past input stack developments (well, a subset thereof anyway). On...
I built a 2x faster lexer, then discovered I/O was the real bottleneck
Archiving 104K files into tar.gz reduced I/O time by 43x and total processing time by 2.3x. The bottleneck was not disk speed, it was syscall overhead.
Rust concurrency: the archetype of a message-passing bug
Whenever I have a chance, I extol the virtues of message-passing and event-loops in structuring concurrent workflows in Rust. However, in…