Maps and Memory Leaks in Go
A map can always grow in memory; it never shrinks. Hence, if it leads to some memory issues, you can try different options.
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 4,389 posts.
A map can always grow in memory; it never shrinks. Hence, if it leads to some memory issues, you can try different options.
This is the story of the time I wrote some code, deployed it to production, and ended up bricking the server it was running on by frying the kernel. Beautiful rendition of me frying the kernel This post is about perils of concurrency and...
Unexpected performance deviations depending on how you spell zero.
Machine learning systems are stuck in a rut Barham & Isard, HotOS’19 In this paper we argue that systems for numerical computing are stuck in a local basin of performance and programmabil…
Then come along! Let’s make a compiler that goes all the way from source to assembly from scratch—no shortcuts!
It’s terribly punny/dorky of me, but reading your post it just occurred to me one could start a blog called “Race Condition” about being a person of color and being a computer scientist.
Let's talk about why Snapshot Isolation is not enough for a general purpose concurrency control. Snapshot Isolation has been adap...
This page describes a TCP performance problem resulting from a little-known interaction between Nagle’s Algorithm and Delayed ACK. At least, I believe it’s not well known: I haven’t seen it documented elsewhere, yet in the course of my career at Apple I have run into the performance problem it causes over and over…
Decimating Array.Sort with AVX2. I ended up going down the rabbit hole re-implementing array sorting with AVX2 intrinsics. There’s no reason I should go down alone.
Harry Marr — Member of Technical Staff at Anthropic. Co-founded Dependabot, previously at GitHub, Monzo, and GoCardless.
This is the Part 2 of a series. Feel free to read the prequel for more context: Building the fastest Lua interpreter automatically Building a good VM for a dynamic language takes a ton of engineerin
Putting FreeBSD’s “power to serve” motto to the test. On Thanksgiving morning, I woke up to one of my web services being unavailable. All HTTP requests failed with a “503 Service unavailable” error. I logged into the console, saw a simplistic “Runtime version: Error” message, and was not able to diagnose the problem…
Similar to the previous post, this post covers my analysis of a benchmark on RISC-V targets. Unlike the previous post, I was able to land a patch to eliminate the performance gap to GCC (for this benchmark)!
In 1980, Intel introduced the 8087 floating-point chip, a co-processor that made floating-point operations up to 100 times faster. This chip...
TL;DR: Some Linux distros and even different kernel versions within a distro have disabled IRQ time accounting. In such case, your monitoring tools will report zero time spent in hardware interrupt handlers (shown as %hi, %irq, hiq, etc). It’s easy to check how your kernel is behaving by looking at /proc/stat and you…
Processors are driven by a clock, which controls the timing of each step inside the chip. In this blog post, I'll examine the clock-generati...
Upon hearing the word 'bootloader', many people cower in fear. It seems like a scary low-level thing that's very easy to mess up. To dispel some of this fear, I'm going to walk through making a super simple bootloader/OS, assuming only a basic level of familiarity with assembly language and how computers work.
Updated: 2023-01-06 About a year ago I was bitten by the PL bug. It started with reading Crafting Interpreters and discovering the wonders hidden under the hood of a compiler. I am also been a big fan of Emacs, and this started to get me interested in how its interpreter works. At the same time, I was reading the Rust…
Writing a minimal x86-64 JIT compiler in C++ that runs on macOS, Linux and WSL - Part 2
Yes, that familiar little PC peripheral. The one that toggles a single keyboard/mouse/display ensemble between two or more connected machines.
Regarding the example #5, I must be confused about the definition of a sequence point because the resulting assembly output seems to be non-ANSI C:
How distributed serverless compute changes the game on whats possible
Written pieces, talks, and other bits by Zach Holman.
So, Windows 10 has just been released, and with it Ahead Of Time (AOT) compilation feature .NET native . Google also just recently introduc...
This is one of these things that look very obvious to me, to the point where it seems not worth discussing. However, I've heard the idea that "hardware magically makes things cheap" from several PhDs over the years. So apparently, if you aren't into hardware, it's not obvious at all.
"What are folks’ views on systems so large where cold-starting the whole system is almost impossible?"... — M'colleague, Shivam, In A Slackroom Next Door.
2022 September 10 What is the best media for long term storage is a question that I read frequently from online forums. First and foremost, as far as I’m aware there is no real “set it and forget it” long term storage. In this digital age, data needs to be validated regularly and cycled to a new media every 5-10 years…