Performance Hints
Over the years, we (Jeff & Sanjay) have done a fair bit of diving into performance tuning of various pieces of code, and improving the performance of our software has been important from the very earliest days of Google, since it lets us do more for more users. We wrote this document as a way of identifying some general principles and specific techniques that we use when doing this sort of work, and tried to pick illustrative source code changes (change lists, or CLs) that provide examples of the various approaches and techniques. Most of the concrete suggestions below reference C++ types and CLs, but the general principles apply to other languages. The document focuses on general performance tuning in the context of a single binary, and does not cover distributed systems or machine learning (ML) hardware performance tuning (huge areas unto themselves). We hope others will find this useful. Many of the examples in the document have code fragments that demonstrate the techniques (click
abseil / Performance Hints Performance Hints Jeff Dean , Sanjay Ghemawat Original version: 2023/07/27, last updated: 2025/12/16 Expand all details Collapse all details Over the years, we (Jeff & Sanjay) have done a fair bit of diving into performance tuning of various pieces of code, and improving the performance of our software has been important from the very earliest days of Google, since it lets us do more for more users. We wrote this document as a way of identifying some general principles and specific techniques that we use when doing this sort of work, and tried to pick illustrative so
saved by
- Karan MJ
- Zhi Ying Sun
- Aaron Pham
- Dhruv Sheth
- Julian H
- Jon
- Rohan Kanti
- Ishan Mukherjee
- Will Anderson
- Davis Brown
- Devin Plumb
related reading
- abseil / Performance Hintsabseil.io
- Algorithms for Modern Hardware - Algorithmicaen.algorithmica.org
- Making Deep Learning go Brrrr From First Principleshorace.io
- Infographics: Operation Costs in CPU Clock Cycles - 6IT6it.dev
- sled theoretical performance guide | sled-rs.github.iosled.rs
- sled theoretical performance guide | sled-rs.github.iosled.rs
- Rust Optimization.md · GitHubgist.github.com
- The compiler will optimize that away | RoyalSlothblog.royalsloth.eu
- Optimization of Computer Programs in Cicps.u-strasbg.fr
- CRDTs go brrrjosephg.com
- Three Optimization Tips for C++ - Engineering at Metaengineering.fb.com
- Laurence Tratt: Four Kinds of Optimisationtratt.net