2013-05-24 11 views
6

Ich führe einen Benchmark mehrmals, um den Mittelwert zu notieren. Aber ich merke, dass nach dem ersten Lauf die nachfolgenden Läufe schneller sind. Ich denke, es hat etwas mit dem Instruktions-Cache zu tun. Wenn ich das Programm das nächste Mal benutze, hat der Benchmark bereits Anweisungen im Cache. Gibt es eine Möglichkeit, ein Programm mit Kaltbefehls- und Datencaches zu starten?Wie starte ich ein Programm mit Cold-Cache

+2

Wahrscheinlich CD-Cache, hätte ich gedacht? –

+0

Dies ist wahrscheinlich, weil das Programm und die Daten von der Festplatte gelesen werden, nicht wegen CPU-Caches. – sharptooth

+0

Nette Frage !! –

Antwort

4

Dies ist ein normales Verhalten. Eine Möglichkeit, dieses Problem zu vermeiden, besteht darin, vor dem Hauptlauf einige Aufwärmübungen durchzuführen. Diese Aufwärmläufe überschreiben den Cache-Speicher, der zuvor mit dem Programm aufgewachsen ist. Wenn Sie den Mittelwert berechnen, schließen Sie die Aufwärmläufe aus, nehmen Sie nur einen echten Lauf. Eine verschiedene Bankmarkierungswerkzeuge da draußen, die diese Annäherung wie. kernbench, lmbench usw. Wo ein Aufwärmwert verfügbar ist.

Und wenn der Benchmark, den Sie ausführen, von Daten abhängt, die vom Datenträger gelesen werden müssen, hat das Disk-Caching auch Auswirkungen. Eine Möglichkeit, dies zu vermeiden, ist das Zwischenspeichern dieser Daten auf RAM. Diese Technik wird in Kernbench verwendet, um Probleme mit dem Festplatten-Cache zu vermeiden.

Verwandte Themen