Ich habe eine Anwendung in C++ geschrieben, die jemand anders in einer Weise geschrieben hat, die CPU-Caches maximal nutzen soll. Diese Anwendung läuft auf einem Gast-Ubuntu-Betriebssystem, das Paravirtualisierung verwendet. Ich habe cachegrind ausgeführt und sehr niedrige Cache-Miss-Raten erhalten.Cachegrind unter Xen
Da mein Betriebssystem virtualisiert ist, kann ich sicher sein, dass diese Werte tatsächlich korrekt sind, um zu zeigen, dass der CPU-Cache für meine Anwendung gut genutzt wird?
Schlüsselwort hier ist "soll". Programmierer sind sehr gut darin, sich selbst zu täuschen, was aus einer Zeitperspektive in einem Programm passiert. Das erste, was ich vorschlagen würde ist, das Ding zu probieren und zu sehen, was es wirklich macht. [Hier ein Beispiel.] (Http://stackoverflow.com/questions/926266/performance-optimization-strategies-of-last-resort/927773#927773) –
+1 Gute Frage. Ich arbeite gerade jetzt daran. Irgendwelche Updates seit der ursprünglichen Frage? – Iterator
@Iterator Ich habe nie wirklich einen guten Weg gefunden, dies zu testen, und meine Organisation hat schließlich die Anwendung auf eine eigene Standalone-Maschine verschoben, anstatt sie virtualisiert zu halten. –