2011-08-21 12 views
5

Para que un programa sea eficiente en caché, los datos utilizados deben almacenarse linealmente ¿no?Caché eficiente y BLOB's - caché de creación de perfiles aciertos/errores

Así que, en lugar de la asignación dinámica, coloco mis datos en un blob utilizando un asignador lineal. ¿Es esto suficiente para mejorar el rendimiento? ¿Qué debo hacer para mejorar la eficiencia de la caché aún más?

Sé que esta pregunta enviaban específico, pero no sé cómo explicarlo ...

Qué programas de visitas al perfil me cache/fallos pueden ayudar?

+2

lo que es suficiente/útil/necesario para la mejora del rendimiento, debe decidirse por el perfil, no por pura suposición. si hubiera una receta universalmente aplicable, ya se habría implementado en la biblioteca de tiempo de ejecución. – Vlad

+0

Acabo de agregar otra pregunta ... ¿Conoces algún generador de perfiles para detectar aciertos/errores en la caché, así puedo ver si los cambios que hago mejoran el rendimiento? –

Respuesta

5

Si lo que buscas es un generador de perfiles para ventanas, puede intentar AMD's CodeAnalyst o VerySleepy, ambos estos son gratuitos, AMDs es el más poderoso de los dos sin embargo (y funciona en el hardware de Intel, pero iirc no se puede usar el hardware basado en el perfil de cosas), incluye el monitoreo de cosas como la rama fallas en la predicción y utilización de la memoria caché. Perfilado es grande, ya que le dice lo que debe optimizar, pero no siempre se sabe cómo , por eso, usted debe echar un vistazo a Agner Fog's optimization manuals combinado con Intel's optimization manual (que contiene una gran cantidad de localidad y cachability optimizaciones)

3

Si está en Linux puede usar Valgrind (específicamente herramienta cachegrind).

Si está en Windows, entonces la edición de VS2010 (2008) Professional tiene un generador de perfiles integrado pero No conozco ningún detalle acerca de las funciones de creación de perfiles de caché. También está el Analizador de VTune (amplificador) Intel . Ambos son productos comerciales, aunque creo que puede obtener copias de evaluación de 30 días.

Algunas otras preguntas sobre lo que podría ser de ayuda:

+0

Se ve bien, pero uso Windows ... ¿Hay algún sustituto de Windows para Valgrind? –

+0

@Tiago Costa que es un fastidio ... – celavek

0

En Linux, puede usar perf mem para muestrear los accesos a la memoria, incluidos los errores de una manera muy detallada (incluida la dirección incorrecta), como described here.

Cuestiones relacionadas