Wie misst man die memory-Bandbreite-Auslastung unter Windows?
Habe ich eine sehr threaded-Programm, aber ich glaube, es ist nicht in der Lage zu skalieren über mehrere Kerne, da es bereits gesättigt alle Speicher-Bandbreite.
Gibt es irgendein tool gibt, die es erlaubt, zu Messen, wie viel die Speicher-Bandbreite verwendet wird?
Bearbeiten: Bitte beachten Sie, dass typische Profiler zeigen die Dinge wie memory-leaks und memory allocation, die ich bin nicht daran interessiert.
Ich bin nur, ob die Speicherbandbreite ist nicht gesättigt oder nicht.
- Wenn Sie möchten, eine sysadmin-tool, müssen Sie Ihre OS. Sie möchten eine programmgesteuerte Werkzeug, müssen Sie die Programmiersprache.
- Eigentlich nicht. Speicher-Bandbreite von der CPU über caches, Haupt-meory ist ein low-level-Konzept völlig unabhängig von der Programmiersprache.
- seine Fenster. ich bearbeitet die Titel, um diese zu reflektieren. vereinbaren Sie mit msalters, Programmiersprache hat nichts zu tun mit memory-Bandbreite Messen.
- Von 'programmatischen tool", meinte ich, dass Sie haben könnte, wollte Sie es in Ihrem eigenen code, anstatt führen Sie es als eine separate Anwendung. Ich hätte mich klarer.
- Es scheint sehr, sehr unwahrscheinlich, dass Sie Messen können, Speicherbandbreite Nutzung. Messen Sie die Speicher-Bandbreite natürlich, aber Sie konnte es nicht Messen, während andere Anwendungen laufen, dann erwarten, dass der Unterschied zwischen den beiden Werten werden die verwendeten Speicher-Bandbreite. Es sei denn, es ist etwas, eingebaut in der CPU, oder Speicher-controller, dann können Sie nicht tun. Ich habe noch nie davon gehört..
- gut, scheint, wie "sehr, sehr unwahrscheinlich" ist gar nicht so unwahrscheinlich, nachdem alle. Siehe die Antwort von Roman unten... 😉
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie eine aktuelle Intel-Prozessor, können Sie versuchen, verwenden Sie die Intel(r) Performance Counter Monitor: http://software.intel.com/en-us/articles/intel-performance-counter-monitor/ kann Es direkt Messen verbrauchten Speicherbandbreite von dem Speicher-Controller.
Ich würde empfehlen die Visual Studio-Beispiel-Profiler, der sammeln kann, Beispiel-Ereignisse, die auf bestimmten hardware-Zähler. Zum Beispiel, können Sie wählen, um die Probe auf den cache findet. Hier ein Artikel der erklärt, wie Sie wählen, die CPU-Zähler, aber es gibt auch andere Leistungsindikatoren, die Sie mit spielen können auch.
es würde schwer sein ein tool zu finden, dass die gemessene Speicherbandbreite Auslastung für Ihre Anwendung.
Aber da das Problem, das Sie Gesicht ist ein Verdacht Speicherbandbreite problem, Sie könnten versuchen, und Messen, ob Ihre Anwendung erzeugt eine Menge von page faults /sec, das würde definitiv bedeuten, dass Sie sind nicht, wo in der Nähe der theoretische Speicher-Bandbreite.
Sollten Sie auch Messen, wie cache-freundliche algorithmen sind. Wenn Sie Prügel die-cache, wird der memory-Bandbreite-Auslastung wird erheblich behindert. Google "Messung der cache-misses" auf gute Quellen, die Ihnen sagt, wie dies zu tun.