Ich habe eine Anwendung, die wenig CPU-Rechenarbeit, aber vor allem Speicherzugriffe (Zuweisung von Objekten und Verschieben von ihnen, gibt es einige numerische oder arithmetische Code).Wie überprüft man, ob App cpu-gebunden oder speichergebunden ist?
Wie kann ich den Anteil der Zeit messen, die ich in Speicherzugriffswartezeiten (aufgrund von Cache-Misses) verbringe, während die CPU inaktiv ist?
Ich sollte beachten, dass die App auf einem Hyper-V-Gast ausgeführt wird; Ich bin mir nicht sicher, ob es irgendwelche Schwierigkeiten geben wird, aber es könnte.
Sie sehen, ich habe bereits die Anwendung profiliert. Es hat ein ziemlich flaches Leistungsprofil mit viel Zeit, die verschiedene Speicherzugriffsfunktionen wie memset, memmove usw. benötigen (eigentlich ist dies eine .NET-Anwendung, die unter Windows läuft, und diese Funktionen werden von der CLR während der Objektkonstruktion aufgerufen). Ich würde gerne wissen, ob ihre Zeit von CPU oder vom Speicherbus dominiert wird. – jkff
Sie könnten ** AMD CodeAnalyst Performance Analyzer ** ausprobieren: http://developer.amd.com/cpu/codeanalyst/Pages/default.aspx oder http://www.virtualdub.org/blog/pivot/entry.php ? id = 288 –