Tengo una aplicación que realiza pocos cálculos de CPU, pero principalmente tiene acceso a la memoria (asignando objetos y moviéndolos, hay pocos códigos numéricos o aritméticos).¿Cómo comprobar si la aplicación está unida a la CPU o ligada a la memoria?
¿Cómo puedo medir la cantidad de tiempo que gasto en latencias de acceso a la memoria (debido a errores de caché), con la CPU inactiva?
Debo señalar que la aplicación se ejecuta en un invitado de Hyper-V; No estoy seguro de que suponga ninguna dificultad, pero podría ser.
Verá, ya he perfilado la aplicación. Tiene un perfil de rendimiento razonablemente plano con gran parte del tiempo ocupado por varias funciones de acceso a la memoria como memset, memmove, etc. (en realidad se trata de una aplicación .NET que se ejecuta en Windows, y CLR llama a estas funciones durante la construcción del objeto). Me gustaría saber si su tiempo está dominado por la CPU o por el bus de memoria. – jkff
Puede probar ** AMD CodeAnalyst Performance Analyzer **: http://developer.amd.com/cpu/codeanalyst/Pages/default.aspx o http://www.virtualdub.org/blog/pivot/entry.php ? id = 288 –