Memory Benchmark-Plot: Cache-Verhalten verstehen

Ich habe alle möglichen Argumente ausprobiert, aber ich verstehe diese Handlung nicht wirklich. Es zeigt im Grunde die Leistung beim Lesen und Schreiben von Arrays unterschiedlicher Größe mit unterschiedlichen Schritten. Ich verstehe, dass ich für kleine Schritte wie 4 Bytes die gesamte Zelle im Cache lese, was zu einer guten Leistung führt. Aber was passiert, wenn ich das 2-MB-Array und den 4-KB-Schritt habe? oder die 4M und 4k Schritt? Warum sind die Leistungen so schlecht? Schließlich warum, wenn ich 1MB Reihe habe und der Schritt 1/8 der Größenleistung ist, annehmbar sind, wenn 1/4 die Größenleistung am schlechtesten erhält und dann bei der Hälfte der Größe, Leistung super gut sind? Bitte hilf mir, dieses Ding macht mich verrückt.

Unter diesem Link steht der Code:https://dl.dropboxusercontent.com/u/18373264/membench/membench.c

Antworten auf die Frage(1)

Ihre Antwort auf die Frage