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 Time Memo
L1 cache reference 1  
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 network 10,000,000  10  
Disk seek  10,000,000 10 20x datacenter round trip 
TCP packet round trip between continents 150,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