Get the latest tech news

How fast are Linux pipes anyway?


Pipes are ubiquitous in Unix --- but how fast can they go on Linux? In this post we'll iteratively improve a simple pipe-writing benchmark from 3.5GiB/s to 65GiB/s, guided by Linux `perf`.

fizzbuzz writes the output in blocks as big as the L2 cache, to strike a good balance between cheap access to memory and minimizing IO overhead. But often this compromise is worth it, and in fact it is a common pattern for high-performance server applications: we trade off possibly wasteful CPU utilization for better latency and/or throughput. Pipes and splicing in particular aren’t really hot topics when it comes to high-performance programming, but the themes we’ve touched upon are: zero-copy operations, ring buffers, paging & virtual memory, synchronization overhead.

Get the Android app

Or read this on Hacker News

Read more on:

Photo of Linux

Linux

Photo of Linux pipes

Linux pipes

Related news:

News photo

Denmark Is Switching to Linux

News photo

Cross-Compilation Toolchains for Linux

News photo

Intel Continues Working On Linear Address Space Separation "LASS" For Linux