DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Please enter at least three characters to search
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Zones

Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks

Modernize your data layer. Learn how to design cloud-native database architectures to meet the evolving demands of AI and GenAI workkloads.

Secure your stack and shape the future! Help dev teams across the globe navigate their software supply chain security challenges.

Releasing software shouldn't be stressful or risky. Learn how to leverage progressive delivery techniques to ensure safer deployments.

Avoid machine learning mistakes and boost model performance! Discover key ML patterns, anti-patterns, data strategies, and more.

Related

  • Scaling InfluxDB for High-Volume Reporting With Continuous Queries (CQs)
  • Harnessing the Power of AWS Aurora for Scalable and Reliable Databases
  • The Generic Way To Convert Between Java and PostgreSQL Enums
  • How to Convert CSV to XML in Java

Trending

  • While Performing Dependency Selection, I Avoid the Loss Of Sleep From Node.js Libraries' Dangers
  • Optimize Deployment Pipelines for Speed, Security and Seamless Automation
  • A Developer's Guide to Mastering Agentic AI: From Theory to Practice
  • Why I Started Using Dependency Injection in Python
  1. DZone
  2. Data Engineering
  3. Data
  4. Every Programmer Should Know These Latency Numbers

Every Programmer Should Know These Latency Numbers

By 
Howard Lewis Ship user avatar
Howard Lewis Ship
·
Jun. 12, 12 · Interview
Likes (0)
Comment
Save
Tweet
Share
136.6K Views

Join the DZone community and get the full member experience.

Join For Free

This is interesting stuff; Jonas Bonér organized some general some latency data by Peter Norvig as a Gist, and others expanded on it. What's interesting is how, scaling time up by a billion, converts a CPU instruction cycle into approximately one heartbeat, and yields a disk seek time of "a semester in university".

### 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](http://i.imgur.com/k0t1e.png)

Visual chart provided by [ayshen](https://gist.github.com/ayshen)

Data by [Jeff Dean](http://research.google.com/people/jeff/)

Originally by [Peter Norvig](http://norvig.com/21-days.html#answers)

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

 

 

Programmer (hardware) Peter Norvig Scaling (geometry) Gist (computing) JOnAS Data (computing) Heartbeat (computing) Convert (command)

Published at DZone with permission of Howard Lewis Ship, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

Related

  • Scaling InfluxDB for High-Volume Reporting With Continuous Queries (CQs)
  • Harnessing the Power of AWS Aurora for Scalable and Reliable Databases
  • The Generic Way To Convert Between Java and PostgreSQL Enums
  • How to Convert CSV to XML in Java

Partner Resources

×

Comments
Oops! Something Went Wrong

The likes didn't load as expected. Please refresh the page and try again.

ABOUT US

  • About DZone
  • Support and feedback
  • Community research
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 100
  • Nashville, TN 37211
  • support@dzone.com

Let's be friends:

Likes
There are no likes...yet! 👀
Be the first to like this post!
It looks like you're not logged in.
Sign in to see who liked this post!