Pregunta

¿Es posible determinar el rendimiento de una aplicación en un procesador de la recuentos de ciclos (ciclos de instrucción del procesador) consumidos por la aplicación? En caso afirmativo, cómo calcularlo?

¿Fue útil?

Solución

Si el proceso es totalmente CPU obligado, a continuación, se divide la velocidad del procesador por el número de ciclos para obtener el rendimiento.

En realidad, pocos procesos son totalmente CPU obligado, sin embargo, en este caso usted tiene que tomar otros factores (velocidad del disco, velocidad de la memoria, de serialización, etc.) en cuenta.

Otros consejos

simple:

#include <time.h>
clock_t c;
c = clock(); // c holds clock ticks value
c = c / CLOCKS_PER_SEC; // real time, if you need it

Tenga en cuenta que el valor que se obtiene es una aproximación, para más información ver la página clock() hombre .

Algunas CPUs tienen registros internos rendimiento que le permiten recoger todo tipo de estadísticas interesantes, tales como ciclos de instrucción (a veces incluso en una base por unidad de ejecución base), fallos de caché, # de caché / memoria lee las escrituras /, etc. se puede acceder a estos directamente, pero dependiendo de lo que la CPU y el sistema operativo que está utilizando es muy posible que las herramientas existentes que gestionan todos los detalles para que a través de una interfaz gráfica de usuario. A menudo, una buena herramienta de perfiles tendrá soporte para los registros de rendimiento y permitir a las estadísticas Recoger con ellos.

Si se utiliza el Cortex-M3 de TI / Luminary Micro, se puede hacer uso de la driverlib entregado por TI / Luminary Micro. El uso de las funciones SysTick se puede establecer el SysTickPeriod al ciclo de procesador de 1: 1 Por lo que tiene de reloj del procesador entre interrupciones. Contando el número de interrupciones que debe obtener un "lo suficientemente cerca de la estimación" de la cantidad de tiempo que un bloque de función o la función de toma.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top