Quiero utilizar los Contadores de rendimiento de hardware que vienen con los procesadores multinúcleo Intel y AMD x86_64 para calcular el número de tiendas retiradas por un programa. Quiero que cada hilo calcule sus tiendas retiradas por separado. Se puede hacer? Y si es así, ¿cómo en C/C++?Uso de contadores de rendimiento de hardware en Linux
Respuesta
Puede usar Perfctr o PAPI si desea contar eventos de hardware en alguna parte del programa internamente (sin iniciar ninguna herramienta de terceros).
PERFCTR inicio rápido: http://www.ale.csce.kyushu-u.ac.jp/~satoshi/how_to_use_perfctr.htm
página PAPI: http://icl.cs.utk.edu/papi/
PerfSuite buena doc: http://perfsuite.ncsa.illinois.edu/publications/LJ135/x27.html
Si usted puede hacer esto externamente, hay un comando de Linux perf
moderna.
Potencia del wiki: https://perf.wiki.kernel.org/index.php/Main_Page
Es bueno saber sobre el comando 'perf'. No sabía que existía. –
check out oprofile
todavía?
Amplíe esta respuesta . Y Estás en lo cierto, pero hay muy poca información para aquellos que aún no entienden cómo funciona OProfile. –
La aplicación oficial de AMD se llama CodeAnalyst
El mejor enfoque va a utilizar Potencia en Linux como osgx mencionado, ya que forma parte del núcleo de Linux. Pero también se puede invocar en el código C/C++, y no es necesario que sea una llamada de estadísticas externa.
Simplemente descargue el código fuente del kernel y échele un vistazo. O, alternativamente, echar un vistazo a esta biblioteca pienso por Google:
http://perfmon2.sourceforge.net/docs_v4.html
que forma parte del proyecto perfmon2, pero está diseñado para trabajar con perf. Eche un vistazo al directorio perf_examples y obtendrá la idea. Así es como manejo las llamadas de rendimiento desde mis códigos C.
¡Hola, Saman! ¿Pueden compartir un ejemplo simple de ejecución de un binario desde un programa y contar las "instrucciones retiradas" y escribirlas en un archivo? Traté de entender los ejemplos, pero o soy demasiado tonto o los ejemplos son demasiado vagos. Cualquier ayuda será muy apreciada. – Achilles
modo de ejemplo sería: [Código] int main() { niño tenedor() { execv (binarios) } instrucciones recuento jubilados() escribir en un archivo() Fin } – Achilles
Hola, puedes encontrar un samplke aquí: [link] (http://codepad.org/T5y4z0gV) –
- 1. Concepto de "Contadores de rendimiento" en Linux/Unix
- 2. Lea los contadores de rendimiento periódicamente en Linux
- 3. equivalente para los contadores de rendimiento en Linux Win32
- 4. Uso de contadores de rendimiento para rastrear servicios de Windows
- 5. Contadores de aplicaciones en Linux? (Y OSX?)
- 6. Contadores de rendimiento en el iPhone
- 7. Uso de mono en Linux integrado para hardware
- 8. Cálculo de promedios con contadores de rendimiento
- 9. Contadores de rendimiento de la aplicación Java vistos en Perfmon
- 10. Nombrar contadores de rendimiento de varias instancias en .NET
- 11. Uso de contadores de rendimiento con diferentes idiomas de interfaz de usuario
- 12. ¿Cuál es el impacto en el rendimiento de los Contadores de rendimiento
- 13. Crear contadores de rendimiento personalizados en Visual C++
- 14. Implementación de señales de reloj de hardware en Linux Kernel
- 15. Perfiles de rendimiento en Linux
- 16. ¿Cuáles son los mejores contadores de rendimiento ASP.NET para monitorear?
- 17. Listar todos los contadores de rendimiento para una categoría
- 18. ¿Por qué no cambiarán mis contadores de rendimiento?
- 19. ¿Cómo establece programáticamente el reloj de hardware en Linux?
- 20. ¿Cómo obtengo información de hardware en Linux/Unix?
- 21. Cómo obtener información de hardware en Linux usando C++
- 22. ¿Quién está actualizando el watchdog de hardware en Linux?
- 23. Agregando contadores de cuenta
- 24. Prueba del rendimiento de IO en Linux
- 25. Creando y editando contadores de rendimiento en un script o línea de comando de powershell
- 26. Python: Contadores de anidamiento
- 27. rendimiento del zócalo en Linux
- 28. rendimiento muy pobre (~ 0.4MB/s) con Linux usb controlador de kernel de transferencia masiva y hardware loopback
- 29. Contadores de incremento automático almacenados en ConcurrentHashMap
- 30. ¿Los contadores de rendimiento son la herramienta adecuada para mi trabajo? Si es así, ¿cómo los uso?
Esta tarea es tan difícil de realizar que nadie la conoce :(! – MetallicPriest
¿Alguna vez has oído hablar de PAPI (Interfaz de programación de aplicaciones de rendimiento)? He trabajado con Intel x86. No estoy seguro de si tiene soporte de AMD, pero aquí hay un pdf con alguna información ww.netlib.org/utk/people/JackDongarra/PAPERS/papi-linux.pdf. ¿Es esto lo que quieres? – Fred
Fred, ¿está disponible de forma gratuita? Si es así, de dónde ¿Puedo descargarlo? – MetallicPriest