February 02, 2022 9:53AM
How to stop running out of ephemeral ports and start to love long-lived connections
Deep Dive
UDP
TCP
Linux
Networking
Often programmers have assumptions that turn out, to their surprise, to be invalid. From my experience this happens a lot. Every API, technology or system can be abused beyond its limits and break in a miserable way...
November 25, 2021 5:27PM
Everything you ever wanted to know about UDP sockets but were afraid to ask, part 1
UDP
Historically Cloudflare's core competency was operating an HTTP reverse proxy. We've spent significant effort optimizing traditional HTTP/1.1 and HTTP/2 servers running on top of TCP. Recently though, we started operating big scale stateful UDP services....
May 06, 2021 2:00PM
Branch predictor: How many "if"s are too many? Including x86 and M1 benchmarks!
Deep Dive
Programming
AMD
EPYC
Speed & Reliability
Is it ok to have if clauses that will basically never be run? Surely, there must be some performance cost to that......
December 18, 2020 12:00PM
Computing Euclidean distance on 144 dimensions
Performance
Optimization
Speed
Last year we deployed a CSAM image scanning tool. This is so cool! Image processing is always hard, and deploying a real image identification system at a Cloudflare scale is no small achievement! But we hit a problem - the matching algorithm was too slow for our needs....
June 18, 2020 12:56PM
Why is there a "V" in SIGSEGV Segmentation Fault?
Deep Dive
Developers
UNIX
My program received a SIGSEGV signal and crashed with "Segmentation Fault" message. Where does the "V" come from? Did I read it wrong? Was there a "Segmentation *V*ault?"? Or did Linux authors make a mistake? Shouldn't the signal be named SIGSEGF?...