Wie kann die Speicherbandbreitennutzung unter Windows gemessen werden?

8

Ich habe ein Programm mit vielen Threads, aber ich glaube, es ist nicht in der Lage, über mehrere Cores hinweg gut zu skalieren, da es bereits die gesamte Speicherbandbreite sättigt.

Gibt es ein Tool, mit dem man messen kann, wie viel Speicherbandbreite verwendet wird?

Bearbeiten : Bitte beachten Sie, dass typische Profiler Dinge wie Speicherlecks und Speicherzuweisung anzeigen, an denen ich nicht interessiert bin. Ich bin nur, ob die Speicherbandbreite gesättigt ist oder nicht.

    
pdeva 02.08.2010, 08:10
quelle

3 Antworten

9

Wenn Sie einen aktuellen Intel-Prozessor haben, können Sie versuchen, den Intel (R) Performance Counter Monitor zu verwenden: Ссылка Es kann direkt die verbrauchte Speicherbandbreite von den Speichercontrollern messen.

    
Roman Dementiev 25.10.2010 15:14
quelle
2

Es wäre schwierig, ein Tool zu finden, das die Speicherbandbreitennutzung für Ihre Anwendung misst.

Da es sich jedoch um ein vermutetes Speicherbandbreitenproblem handelt, könnten Sie versuchen zu messen, ob Ihre Anwendung eine Menge Seitenfehler pro Sekunde generiert, was definitiv bedeutet, dass Sie sich nicht in der Nähe der theoretischen Speicherbandbreite befinden.

Sie sollten auch messen, wie cache-freundlich Ihre Algorithmen sind. Wenn sie den Cache überlasten, wird die Speicherbandbreitennutzung stark beeinträchtigt. Google "Messcache vermisst" bei guten Quellen, die dir sagt, wie das geht.

    
computinglife 03.08.2010 07:46
quelle
2

Ich würde den Visual Studio Sample Profiler empfehlen, der Beispielereignisse auf bestimmten Hardware-Zählern erfassen kann. Sie können beispielsweise festlegen, dass Cache-Misses abgefragt werden. Hier ist ein Artikel, der erklärt wie man den CPU-Zähler wählt , obwohl es auch andere Zähler gibt, mit denen man spielen kann.

    
Matt 16.08.2010 01:01
quelle

Tags und Links