2010-08-02 6 views
8

Ich habe ein Programm mit vielen Threads, aber ich glaube, es ist nicht in der Lage, gut über mehrere Kerne zu skalieren, da es bereits die gesamte Speicherbandbreite sättigt.Wie kann die Speicherbandbreitennutzung unter Windows gemessen werden?

Gibt es ein Tool, mit dem gemessen werden kann, wie viel Speicherbandbreite verwendet wird?

bearbeiten: Bitte beachten Sie, dass typische Profilern zeigen Dinge wie Speicherlecks und Speicherzuweisung, die ich nicht interessiert bin Ich bin nur, ob die Speicherbandbreite oder nicht gesättigt ist..

+2

Wenn Sie ein Systemadministrator-Tool wünschen, müssen Sie Ihr Betriebssystem angeben. Wenn Sie ein programmatisches Werkzeug benötigen, müssen Sie die Programmiersprache angeben. –

+0

Eigentlich nein. Die Speicherbandbreite aus der CPU über Caches in die Hauptverwaltung ist ein Low-level-Konzept, _entirely_ unabhängig von der Programmiersprache. – MSalters

+0

seine Fenster. Ich habe den Titel bearbeitet, um dies zu reflektieren. stimmen mit msalter überein, Programmiersprache hat nichts mit Speicherbandbreitenmessung zu tun. – pdeva

Antwort

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 viele 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.

2

Ich würde den Visual Studio Sample Profiler empfehlen, der Beispielereignisse auf bestimmten Hardware-Zählern sammeln kann. Sie können beispielsweise festlegen, dass Cache-Misses abgefragt werden. Here's an article explaining how to choose the CPU counter, obwohl es auch andere Counter gibt, mit denen du spielen kannst.

9

Wenn Sie einen aktuellen Intel-Prozessor haben, können Sie versuchen, den Intel (R) Performance Counter Monitor zu verwenden: http://software.intel.com/en-us/articles/intel-performance-counter-monitor/ Er kann direkt die verbrauchte Speicherbandbreite von den Speichercontrollern messen.

+0

gibt es eine Möglichkeit, ein Werkzeug, das diese Daten verbraucht und es ausdruckt? –

+0

Intel Performance Counter Monitor wurde eingestellt. Stattdessen bringen sie Updates und neue Funktionen zum forch Processor Counter Monitor auf github: https://github.com/opcm/pcm. – wenjianhn

Verwandte Themen