Numbers everyone should know

Jeff Dean, a brilliant engineer at Google, gave a talk a while ago listing the numbers every engineer should know. I copied these from here.

  • L1 cache reference 0.5 ns
  • Branch mispredict 5 ns
  • L2 cache reference 7 ns
  • Mutex lock/unlock 100 ns
  • Main memory reference 100 ns
  • Compress 1K bytes with Zippy 10,000 ns
  • Send 2K bytes over 1 Gbps network 20,000 ns
  • Read 1 MB sequentially from memory 250,000 ns
  • Round trip within same datacenter 500,000 ns
  • Disk seek 10,000,000 ns
  • Read 1 MB sequentially from network 10,000,000 ns
  • Read 1 MB sequentially from disk 30,000,000 ns
  • Send packet CA->Netherlands->CA 150,000,000 ns


  1. nequitans

    At last a concise place to point to next time someone argues for using a technique purely on its big-O properties while ignoring the system underneath!

  2. Pingback: The Joys of Real Hardware « Handwaving
  3. Pingback: Cost of Locks, CAS and Memory Access | SMR
  4. Pingback: 1 – Rust collections case study: BTreeMap | Traffic.Ventures Blog
  5. Pingback: Approximate cost to access various caches and main memory? - 天府资讯

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s