Frage

Unter Peter Norvig Rat , ich auf die Frage am Grübeln:

  

Wie viel Zeit dauert es, bis aus dem Speicher ein Wort zu holen, mit und ohne Cache-Miss?

(Angenommen Standard-Hardware und Architektur. Berechnungen gehen von 1 GHz Takt zu vereinfachen)

War es hilfreich?

Lösung

Scheint, wie Norvig beantwortet diese selbst :

execute typical instruction         1/1,000,000,000 sec = 1 nanosec
fetch from L1 cache memory          0.5 nanosec
branch misprediction                5 nanosec
fetch from L2 cache memory          7 nanosec
Mutex lock/unlock                   25 nanosec
fetch from main memory              100 nanosec
send 2K bytes over 1Gbps network    20,000 nanosec
read 1MB sequentially from memory   250,000 nanosec
fetch from new disk location (seek) 8,000,000 nanosec
read 1MB sequentially from disk     20,000,000 nanosec
send packet US to Europe and back   150 milliseconds = 150,000,000 nanosec 

Der Teil, wo es heißt "ausführen typische Anweisung" = 1 ns impliziert eine 1 GHz CPU (vorausgesetzt, effizienten Pipelining, natürlich).

Ich weiß nicht, wo er diese Information nimmt, aber ich vertraue Peter Norvig als zuverlässig: -)

Andere Tipps

Messe Zusammenfassung hier , mit einigen Unschärfen . Wenn geschrieben (2+ Jahre) und für einen Mid-Range-PC der Zeit, es wird geschätzt: Speicherzugriff, 60ns; L1-Cache, 10ns; L2-Cache, 20-30ns (keine Schätzungen für die L3-Cache-Zugriffszeit). Alles ändert sich ein Los natürlich abhängig von Streit und Zugriffsmustern (da Cache-Schichten typischerweise gefüllt sind „durch die Linien“ von langsameren Speicher, wenn Sie Adresse X zugreifen dann Adresse X + 1 der zweite Zugang kann wird durch den ersten Zugriff ein bisschen schneller als die Cache-Zeile Füllung gestartet).

Und natürlich, ein High-End, gut abgestimmte Server wird viel schneller (relative Unterschiede zwischen solchen Maschinen in Speicherzugriffslatenz sind in der Regel viel größer als diejenigen in „raw“ CPU-Geschwindigkeiten) sein.

Es gibt eine schöne Visualisierung der Daten in dieser Tabelle auf github.org veröffentlicht Sie hat auch eine „menschlichen Maßstab“ Neuinterpretation des Zeitwert gibt.

eingeben Bild Beschreibung hier

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top