Parsing Protobuf at 2+GB/S: How I Learned to Love Tail Calls in C
[Note: there have been several developments in this space since thisarticle was published. See A Tail Calling Interpreter For Python (And Other Updates) for...
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 553 posts.
[Note: there have been several developments in this space since thisarticle was published. See A Tail Calling Interpreter For Python (And Other Updates) for...
Less than a month ago, I began investigating the Apple M1 GPU in hopes of developing a free and open-source driver. This week, I’ve reached a second milestone: drawing a triangle with my own open-source code. The vertex and fragment shaders are handwritten in machine code, and I interface with the hardware via the…
This is a chronicle of my experiment where I set out to insert 1B rows in SQLite
BitLocker is a modern data protection feature that is deeply integrated in the Windows kernel. It is used by many corporations as a means of protecting company secrets in case of theft. Microsoft recommends that you have a Trusted Platform Module which can do some of the heavy cryptographic lifting for you.
Teams consistently overlook speed. Instead, they add more features (which ironically make things slower). Products bloat over time and performance goes downhill.
QUIC version 1 is officially formalized, and QUIC deployments will now move away from using temporary draft versions to the newly minted version 1.
The release of a small open-source operating system for deeply-embedded computer systems.
I have an affinity for performance optimization and making software as efficient as possible. Over the years, I've encountered specific instances and common patterns that make software or computers slow. In this post, I'll shine a spotlight on some of them.
Apple’s latest line of Macs includes their in-house “M1” system-on-chip, featuring a custom GPU. This poses a problem for those of us in the Asahi Linux project who wish to run Linux on our devices, as this custom Apple GPU has neither public documentation nor open source drivers. Some speculate it might descend from…
In 2017, I went to Facebook on a sabbatical from my faculty position at Yale. I created a team to build a storage system called Delos at the bottom of the Facebook stack (think of it as Facebook’s version of Chubby). We hit production with a 3-person team in less than a year; and subsequently scaled the team to 30+…
The name SQLite is a nice name, but the "lite" part is misleading, it sounds like it is only useful for tiny things - which is very wrong. SQLite should be named AwesomeSQL, because that is what it is. SQLite is probably the only database you will ever need in most cases.
200 SQL statements per webpage is excessive for client/server database engines like MySQL, PostgreSQL, or SQL Server.
Python Developer and Trainer
After a few weeks of investigating the Apple M1 GPU in January, I was able to draw a triangle with my own open source code . Although I began dissecting the instruction set, the shaders there were specified as machine code. A real graphics driver needs a compiler from high-level shading languages (GLSL or Metal) to a…
By segregating macOS background tasks on Efficiency cores, M1 Macs can run user apps unfettered on their Performance cores. And that feels really fast.
X11 client and server. DOS. Windows 3.1. All with preemptive multitasking.
How to put a price on the limits of knowledge
TL;DR Modern disks are so fast that system performance bottleneck shifts to RAM access and CPU. With up to 64 cores, PCIe 4.0 and 8 memory channels, even a single-socket AMD ThreadRipper Pro workstation makes a hell of a powerful machine - if you do it right! Update 1: Since 2021, networks have gotten faster and now…
How a failing rsync run led to the discovery of a long-standing bug in the Linux TCP implementation.
In the late 1990s, the Windows Shell and Internet Explorer teams introduced a bunch of brilliant and intricate designs that allowed extension of the shell and the browser to handle scenarios beyond…
I’d recently bought a new XPS13 7390 (non 2-in-1) laptop. I had bought the 8GB variant, how hard could it be to upgrade?
The tool is great, but it uses perf to record and analyze profile data, and perf on Debian has a performance problem : when not linked against libbfd , it shells out to addr2line for every address it needs to look up. Thousands and thousands and thousands of incredibly short-lived processes.
Porting Linux to Apple Silicon
Every developer should watch the 5 videos about DocC from WWDC. But it’s really a plaintive cry for help. Until Apple squares up and addresses the problem, it can only grow worse.
We successfully deployed ThreadSanitizer in the Firefox project to eliminate data races in our remaining C/C++ components.
This post tells about my journey on fast-booting a Raspberry Pi 3 (RPI). In addition to that, some optimizations are discussed that can be applied to a Qt (QML) application. At the end, we will have a …
A blog by and for database architects.
CCC 5.1.27 and CCC 6 can make bootable copies of the system on Intel and Apple Silicon Macs (11.3+) right now, and we'll continue to support that functiona...