Skip to content

Instantly share code, notes, and snippets.

@hellerbarde
Forked from jboner/latency.txt
Created May 31, 2012 13:16
Show Gist options
  • Save hellerbarde/2843375 to your computer and use it in GitHub Desktop.
Save hellerbarde/2843375 to your computer and use it in GitHub Desktop.
Latency numbers every programmer should know

Latency numbers every programmer should know

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

Assuming ~1GB/sec SSD

Visual representation of latencies

Visual chart provided by ayshen

Data by Jeff Dean

Originally by Peter Norvig

Lets multiply all these durations by a billion:

Magnitudes:

Minute:

L1 cache reference                  0.5 s         One heart beat (0.5 s)
Branch mispredict                   5 s           Yawn
L2 cache reference                  7 s           Long yawn
Mutex lock/unlock                   25 s          Making a coffee

Hour:

Main memory reference               100 s         Brushing your teeth
Compress 1K bytes with Zippy        50 min        One episode of a TV show (including ad breaks)

Day:

Send 2K bytes over 1 Gbps network   5.5 hr        From lunch to end of work day

Week

SSD random read                     1.7 days      A normal weekend
Read 1 MB sequentially from memory  2.9 days      A long weekend
Round trip within same datacenter   5.8 days      A medium vacation
Read 1 MB sequentially from SSD    11.6 days      Waiting for almost 2 weeks for a delivery

Year

Disk seek                           16.5 weeks    A semester in university
Read 1 MB sequentially from disk    7.8 months    Almost producing a new human being
The above 2 together                1 year

Decade

Send packet CA->Netherlands->CA     4.8 years     Average time it takes to complete a bachelor's degree
@eduard93
Copy link

eduard93 commented Jan 3, 2022

What about register access timings?

@hellerbarde
Copy link
Author

hellerbarde commented Jan 6, 2022

@eduard93 I think register access happens within one CPU cycle. Which, at 2.4 GHz would be 0.417 nanoseconds, which is very similar to the L1 cache reference. I'm not sure if that's true, because I'm not incredibly familiar with modern CPUs. Feel free to fact check this.

@Yougigun
Copy link

Yougigun commented Nov 7, 2022

thasnk

@zhangchiisgy
Copy link

nice

@sitansu04
Copy link

thats cool!

@weizhiwen
Copy link

cool!

@Shivam5022
Copy link

thanks for this, loved it

@KimJin788
Copy link

Cool

The human reaction time:
Average Reaction Times

  • Visual stimulus: 150-300ms
  • Audio stimulus: 140-160ms
  • Touch stimulus: 130-150ms

@jerry8888888888888
Copy link

| Online Piano |Free online piano keyboard to help users learn and play piano music easily. |
| Circle of Fifths|A music theory tool to understand intervals, chords, and scales. |
| Tuner Wiki|An online tool for tuning musical instruments accurately. |
| Metronome Wiki | An online metronome for maintaining accurate tempo. |
| Password Generator | A tool for generating strong random passwords to improve online security. |
| HTML Viewer |A tool for viewing and parsing HTML code, useful for web development and debugging. |
Cursive Alphabet |A Free Cursive Alphabet Worksheets
| POE2 Filter | A filter tool for optimizing loot in Path of Exile 2. |
| Blox Fruits Calculator | A calculator for Blox Fruits players to improve efficiency and game strategies. |

| Reaction Time Test | A test that measures your reaction speed. |
| Gay Test | A fun test to explore your sexual orientation. |
| Harry Potter House Quiz | A quiz to determine which Hogwarts house you belong to. |
| Mental Age Test | A test to find out your mental age based on a series of questions. |
| BDSM Test | A test to explore BDSM-related interests and preferences. |
| Dyslexia Test | A tool to detect signs of dyslexia. |
| Hogwarts House Quiz | A quiz to determine your Hogwarts house. |
| Love Language Test | A test to discover your or your partner’s love language. |
| Raads-R Test | A test for identifying autism spectrum disorder traits. |
| Trauma Test | A test to detect symptoms of post-traumatic stress disorder (PTSD). |
| Dyscalculia Test | A test to detect signs of dyscalculia, a math-related learning disability. |
| Reading Speed Test | A test to measure your reading speed and comprehension. |
| Kink Test | A test to explore sexual interests and preferences. |
| BPD Test | A test to assess traits and tendencies associated with Borderline Personality Disorder. |
| wpm Test | A test to measure your typing speed in words per minute. |
| Neurodivergent Test | A test to evaluate traits related to neurodivergence, such as ADHD or autism. |
| Analog Clock | A classic analog clock displaying the current time. |
| Digital Clock | A digital clock that shows the time precisely. |
| Never Have I Ever | A classic party game to share experiences with friends. |
| Discord Timestamp | A tool for generating timestamps to share accurate times in Discord. |
| Multiplication Chart | An interactive multiplication chart to help students learn multiplication. |

| Watermelon Game | A puzzle game that challenges players with different levels of strategic thinking. |
| Fruit Merge | A game where players merge fruits to unlock new items. |
| Infinite Craft | A sandbox building game that allows players to create and explore in an infinite world. |
| Nut Sort | A sorting game that tests players' logical thinking by organizing different types of nuts. |
| Ball Sort | A game that challenges players to sort colored balls into the correct containers. |
| Sorting Games | A collection of sorting games that challenge players' reasoning abilities. |
| Poor Bunny | A puzzle game where players help a bunny solve various challenges. |
| Funny Shooter | An action shooting game where players fight against enemies. |
| Love Dots | A puzzle game where players connect dots, testing observation and logical reasoning. |

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment