Ho un'applicazione che funziona con poche CPU computazionali, ma principalmente accessi alla memoria (allocando oggetti e spostandoli, c'è qualche codice numerico o aritmetico).Come verificare se l'app è legata alla CPU o legata alla memoria?
Come posso misurare la parte del tempo che sto spendendo in latenze di accesso alla memoria (a causa di errori di cache), con la CPU inattiva?
Devo notare che l'app è in esecuzione su un guest Hyper-V; Non sono sicuro che porrà qualche difficoltà, ma potrebbe.
Vedete, ho già profilato l'applicazione. Ha un profilo delle prestazioni ragionevolmente piatto con il tempo impiegato da varie funzioni di accesso alla memoria come memset, memmove ecc. (In realtà si tratta di un'applicazione .NET in esecuzione su Windows e queste funzioni vengono chiamate dal CLR durante la costruzione degli oggetti). Mi piacerebbe sapere se il loro tempo è dominato dalla CPU o dal bus di memoria. – jkff
Si potrebbe provare ** AMD CodeAnalyst Performance Analyzer **: http://developer.amd.com/cpu/codeanalyst/Pages/default.aspx o http://www.virtualdub.org/blog/pivot/entry.php ? id = 288 –