System Design
  • Introduction
  • System Design Process
  • System Design Systematic Approach
  • System Design Topics
  • System Design Interview Tips
  • Object Oriented Design
  • System Design Problems
    • Designing an API Rate Limiter
    • Design News Feed
    • Design Recommendation System
    • Design Photo Sharing App
    • Design Location Based App
    • Design Messenger App
    • Design Twitter
    • Design Uber Lyft
    • Design Surge Pricing
  • Architect's Toolbox
    • Cache Design
    • Database and Cache
    • Pull vs Poll
    • Geo Location
    • Storage Estimation
    • ID Generator
    • Latency Numbers
    • Encoding Decoding Encryption Decryption
  • Systems Design Glossary
    • Consistent Hashing
    • Sharding or Partitioning
    • Database Indexes
    • Proxies
    • Caching
    • Queues
    • SQL vs. NoSQL
    • CAP Theorem
    • Distributed Messaging System
    • Long-Polling vs WebSockets vs Server-Sent Events
    • Producer and Consumer
    • Latency, Bandwidth and Throughput
    • Microservices Architecture
    • RESTful API
    • Concurrent Programming
  • Distributed System Resources
    • Distributed System Notes
  • Reference
Powered by GitBook
On this page
  • Credit
  • Contributions

Was this helpful?

  1. Architect's Toolbox

Latency Numbers

PreviousID GeneratorNextEncoding Decoding Encryption Decryption

Last updated 5 years ago

Was this helpful?

Latency Comparison Numbers (~2012)

Sourced from

Item

ns

us

ms

more

L1 cache reference

0.5

Branch mispredict

5

L2 cache reference

7

14x L1 cache

Mutex lock/unlock

25

Main memory reference

100

20x L2 cache, 200x L1 cache

Compress 1K bytes with Zippy

3,000

3

Send 1K bytes over 1 Gbps network

10,000

10

Read 4K randomly from SSD*

150,000

150

~1GB/sec SSD

Read 1 MB sequentially from memory

250,000

250

Round trip within same datacenter

500,000

500

Read 1 MB sequentially from SSD*

1,000,000

1,000

1

~1GB/sec SSD, 4X memory

Disk seek

10,000,000

10,000

10

20x datacenter roundtrip

Read 1 MB sequentially from disk

20,000,000

20,000

20

80x memory, 20X SSD

Send packet CA->Netherlands->CA

150,000,000

150,000

150

note that,

  • 1 ns = 10^-9 seconds

  • 1 us = 10^-6 seconds = 1,000 ns

  • 1 ms = 10^-3 seconds = 1,000 us = 1,000,000 ns

--

Credit

Contributions

By Jeff Dean: Originally by Peter Norvig:

'Humanized' comparison: Visual comparison chart:

Latency Numbers Every Programmer Should Know | GitHub
http://research.google.com/people/jeff/
http://norvig.com/21-days.html#answers
https://gist.github.com/hellerbarde/2843375
http://i.imgur.com/k0t1e.png