2010-08-02 15 views
8

Ho un programma altamente threaded ma credo che non sia in grado di scalare bene su più core perché sta già saturando tutta la larghezza di banda della memoria.Come misurare l'utilizzo della larghezza di banda della memoria su Windows?

C'è qualche strumento là fuori che consente di misurare quanta larghezza di banda di memoria viene utilizzata?

Edit: Si prega di notare che il profiler tipici mostrano le cose come le perdite di memoria e allocazione della memoria, che io non sono interessato a io sono solo se la larghezza di banda di memoria viene saturo o meno..

+2

Se si desidera uno strumento sysadmin, è necessario specificare il proprio sistema operativo. di voi volete uno strumento programmatico, è necessario specificare il linguaggio di programmazione. –

+0

In realtà, no. La larghezza di banda della memoria fuori dalla CPU attraverso le cache nella memoria principale è un concetto di basso livello _ indipendente dal linguaggio di programmazione. – MSalters

+0

le sue finestre. ho modificato il titolo per riflettere questo. d'accordo con msalters, il linguaggio di programmazione non ha nulla a che fare con la misurazione della larghezza di banda della memoria. – pdeva

risposta

2

sarebbe difficile trovare uno strumento che misurasse l'utilizzo della larghezza di banda della memoria per l'applicazione.

Ma poiché il problema che si pone è un sospetto problema di larghezza di banda di memoria, è possibile provare e misurare se l'applicazione genera molti errori di pagina/sec, il che significherebbe sicuramente che non si è vicini alla larghezza di banda della memoria teorica.

È inoltre necessario misurare la compatibilità con la cache degli algoritmi. Se stanno danneggiando la cache, l'utilizzo della larghezza di banda della memoria sarà gravemente ostacolato. Google "misura cache mancanze" su buone fonti che ti dice come fare questo.

2

Si consiglia il Visual Studio Sample Profiler che può raccogliere eventi di esempio su contatori hardware specifici. Ad esempio, è possibile scegliere di campionare su errori di cache. Here's an article explaining how to choose the CPU counter, anche se ci sono altri contatori con cui puoi giocare.

9

Se si dispone di un processore Intel recente, è possibile provare a utilizzare il contatore di prestazioni Intel (r): http://software.intel.com/en-us/articles/intel-performance-counter-monitor/ Può misurare direttamente la larghezza di banda della memoria consumata dai controller di memoria.

+0

c'è qualche possibilità che ci sia uno strumento che consuma questi dati e li stampa? –

+0

Intel Performance Counter Monitor è fuori produzione. Al contrario, contribuiscono con gli aggiornamenti e le nuove funzionalità al monitor contatore processori fork su github: https://github.com/opcm/pcm. – wenjianhn

Problemi correlati