Unter dem Titel “Latency Numbers Every Programmer Should Know” hat @srigi auf Twitter eine gute Aufstellung gepostet, die mich an meinen alten Artikel https://blog.rot26.de/blog/2010/08/05/latenzzeiten-im-ip-backbone/ erinnert hat.
Anders als ich damals sind nicht nur Netzwerklatenzen erwähnt, sondern auch interne Vorgänge im Rechner, und in Relation zur Geschwindigkeit menschlicher Prozesse, wobei für einen Denkvorgang eine Sekunde veranschlagt wird.
Vorgang | Latenz | in menschlicher Dimension |
1 CPU Taktzyklus | 0,3 ns | 1 s |
Level 1 Cachezugriff | 0,9 ns | 3 s |
Level 2 Cachezugriff | 2,8 ns | 9 s |
Level 3 Cachezugriff | 12,9 ns | 43 s |
RAM-Zugriff (Hauptspeicher) | 120 ns | 6 min |
SSD-Festplatte (Solid State I/O) | 50-150 µs | 2-6 Tage |
Herkömmliche Festplatte (Rotational Disk I/O) | 1-10 ms | 1-12 Monate |
Internet: San Francisco nach New York City | 40 ms | 4 Jahre |
Internet: San Francisco nach Großbritanniten | 81 ms | 8 Jahre |
Internet: San Francisco nach Australien | 183 ms | 19 Jahre |
Reboot (Virtuelles Betriebssystem) | 4 s | 423 Jahre |
SCSI Timeout | 30 s | 3000 Jahre |
Reboot (Hardware-Virtualisationsumgebung) | 40 s | 4000 Jahre |
Reboot (physischer Server) | 5 m | 32 Jahrtausende |
Ich finde dass dies hilft um sich klarzumachen, wie schnell Computer theoretisch arbeiten können, wie sehr aber etwas verlangsamt werden kann wenn Festplattenzugriffe erfolgen oder Netzwerkkommunikation aus dem lokalen Bereich (LAN) auf WAN- oder gar Kontinent-übergreifende Verbindungen erweitert wird.