Image de couverture pour Aide mémoire sur la latence

Aide mémoire sur la latence

Quelques comparaisons de grandeurs pour mieux comprendre la notion de performance

Quelques comparaisons de grandeurs pour mieux comprendre la notion de “performance”

Est-ce qu’un accès disque est vraiment plus lent qu’un accès en mémoire ?
Est-ce que stocker ma donnée aux US est vraiment problématique ?
Quelle débit maximum puis-je avoir sur un SSD ?

 Operation Time in ns Time in ms TimeMemo
L1 cache reference1 
Branch misprediction 3
L2 cache reference 4 
Mutex lock/unlock 17 
Main memory reference 100 ~100GB/sec, 100x L1 cache
Send 2 kB over 10 Gbps network 1,600 0.0016 
Compress 1 kB with Zippy 2,000 0.002 
Read 1 MB sequentially from memory 10,000 0.010 
Round trip within same datacenter 500,000 0.5 
Read 1 MB sequentially from SSD 1,000,000 1 ~1GB/sec SSD, 100x main memory
Read 1 MB sequentially from disk 5,000,000 5 ~200MB/sec HDD, 500x main memory
Read 1 MB sequentially from 1Gbps network10,000,000 10 
Disk seek 10,000,0001020x datacenter round trip 
TCP packet round trip between continents150,000,000 150 

Therefore, it is possible to read:

  • sequentially from HDD at a rate of ~200MB per second
  • sequentially from SSD at a rate of ~1 GB per second
  • sequentially from main memory at a rate of ~100GB per second (burst rate)
  • sequentially from 10Gbps Ethernet at a rate of ~1000MB per second


  • 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

On retrouve souvent ce genre de référence dans les préparation d’entretien tech “à la Google”.

Cependant, il est intéressant d’avoir ces échelles de grandeur en tête.
Quelques exemples :\

  • estimer le temps nécessaire au transfert d’une vidéo
  • décider si passer sur une système distribué est pertinent