Aide mémoire sur la latence

Publié le

illustration de l'article

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 ?

Tableau comparatif

 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

Rappel


  • 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

Dans quel but ?

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

Sources

#latency #connaissance

D'autres articles à lire