visual tools studio net herramientas diagnostico c++ profiling cpu

c++ - tools - Limitar la velocidad de la CPU para perfilar



herramientas de diagnostico visual studio (6)

Había una aplicación en Downloadsquad.com recientemente. No recuerdo el nombre pero hice algunos procesadores de woth rígidos y un administrador de tareas. Puede que solo haya sido para administrar qué aplicaciones están en qué CPU, pero tal vez te daría esto. Intentaré buscarlo esta tarde y responderé si lo encuentro.

Estoy tratando de optimizar varios cuellos de botella en una aplicación que se supone que se ejecuta en una amplia gama de CPU y arquitecturas (algunas muy cerca de dispositivos incrustados).

Los resultados de mi generador de perfiles, sin embargo, no son realmente significativos debido a la velocidad de mi CPU. ¿Hay alguna manera (preferiblemente en Windows o Mac OS X) para limitar la velocidad de mi CPU con fines de generación de perfiles?

He pensado en usar una máquina virtual, pero no he encontrado ninguna con tal funcionalidad.



Me temo que no sé otra respuesta que no sea comenzar a buscar hardware viejo en tu área. La CPU no es la única variable que (generalmente) puede afectar las cosas. El tamaño de caché L1 / L2, la velocidad del bus de memoria, la velocidad / latencia de la memoria, la velocidad del disco duro, etc. son factores importantes en muchas aplicaciones.


Muchos perfiladores (por ejemplo, oprofile, pero solo Linux) le permiten establecer la frecuencia con la que recopilan datos. Vea si su generador de perfiles lo admite, y si no, pruebe con uno diferente que sí lo haga.


He pensado en usar una máquina virtual, pero no he encontrado ninguna con tal funcionalidad.

¿Por qué necesita una VM que explícitamente ofrece esa funcionalidad? Simplemente limite el uso de la CPU de la VM en el sistema operativo host (donde es solo un proceso regular). Eso debería tener exactamente el mismo efecto.

Puedes hacer esto, por ejemplo, usando cpulimit en Linux; soluciones similares existen para MS Windows.


Es un concepto erróneo común que necesita saber qué tan rápido es su código para saber dónde están sus problemas de rendimiento. Eso confunde la búsqueda de problemas con la medición de problemas.

Este es el método que uso.

Si hay alguna lógica derrochadora en el programa, será un desperdicio no importa qué CPU lo ejecute.

Lo que necesitas saber es dónde está. Para la medición, no necesita saber qué tan grande es; solo necesita saber que es lo suficientemente grande como para necesitar reparación.

Por lo general, hay una serie de problemas, de diferentes tamaños. Probablemente encuentre primero los más grandes, pero sin importar en qué orden los arregle, cada uno que arregle hará que sea más fácil encontrar los restantes, ya que tomarán un porcentaje mayor.