2009-05-28 24 views
5

¿Cómo se calcula el ancho de banda de memoria (RAM) utilizado? ¿Qué contadores de rendimiento se requieren?Uso del ancho de banda de memoria

Me encontré con una herramienta que fue capaz de hacerlo, la "prueba de memoria de múltiples hilos Rightmark". Pero a diferencia del resto de las pruebas de Rightmark, no he encontrado el código fuente para él, solo los binarios

+0

¿Por qué está etiquetado como C#, C++ yc? – unwind

Respuesta

1

Es muy difícil 'calcular' el uso del ancho de banda de la memoria. Hay muchos problemas de caché no triviales y MMU con los que lidiar. La única forma real de hacerlo es mediante el uso de simulaciones o mediciones del mundo real.

Puede obtener una idea 'aproximada' depurando el código y contando el número de operaciones de almacenamiento y carga de memoria realizadas. Sin embargo, saber si se trataba de un error de caché es otro problema.

Depende de su propósito. Si se trata de obtener una estimación aproximada, puede usar la regla general de que aproximadamente el 30% del código de propósito general se carga y almacena la memoria. Si está tratando de obtener el peor de los casos, puede suponer que las memorias caché pierden todo el tiempo y lo resuelven.

Una cosa potencial que podría hacer es observar la virtualización. Hay varias opciones de código abierto (me viene a la mente QEMU). Es posible exportar ciertas medidas de hardware de ellos.

1

Coincidentemente, el artículo de CLR Inside Out en la edición de junio de MSDN Magazine trata sobre el uso de memoria de perfiles en aplicaciones .NET.

http://msdn.microsoft.com/en-us/magazine/dd882521.aspx

+1

Pero la pregunta era sobre/ancho de banda/(en el sentido de velocidad de transferencia de datos), no el consumo de memoria. – Frank

1

Si el código se puede ejecutar en Linux, utilice Cachegrind:

Cachegrind es un perfilador de memoria caché. Es realiza una simulación detallada de las cachés I1, D1 y L2 de en su CPU y , por lo que puede identificar con exactitud las fuentes de fallas de caché en su código. Es identifica el número de omisiones de memoria caché, referencias de memoria e instrucciones ejecutadas para cada línea de código fuente, con resúmenes de programa completo por función, por módulo y . Es útil con programas escritos en cualquier idioma. Cachegrind ejecuta programas sobre 20--100x más lento que lo normal.

Es posible que desee utilizar el KCacheGrind GUI.

Cuestiones relacionadas