2008-11-02 25 views

Respuesta

5

No he encontrado ninguna de esas herramientas para WindowsMobile para el desarrollo nativo.

Lo más parecido que he encontrado es el conjunto de herramientas EnTrek (CodeSnitch/ProcMan), pero en realidad no son herramientas de creación de perfiles. http://www.entrek.com/products.htm

Lo que sí hicimos es crear nuestro propio soporte de perfiles en nuestros propios productos utilizando el conmutador Vistual Studio "/ callcap" para VC++. Al usar ese conmutador, puede crear una biblioteca de creación de perfiles que elimine los tiempos y los recuentos, como prefiera. En general funciona bien para nosotros, pero a veces la sobrecarga de estas funciones de enlace puede ser demasiado y puede sesgar los resultados de temporización a las áreas de gran cantidad de llamadas a funciones.

De los Documentos de MSDN:

La opción/callcap hace que el compilador para insertar llamadas a perfilar ganchos al principio y al final de cada función .

Debe compilar los ganchos de perfil sin el interruptor callcap. Si compila las funciones de gancho de perfilado con el interruptor callcap, las funciones realizarán infinitas llamadas recursivas consigo mismas.

El ejemplo de código siguiente, Callcaphooks.c, muestra un gancho perfilado función, _CAP_Enter_Function, por compilación sin callcap.

// File: callcaphooks.c 

#include <stdio.h> 
int main(); 

void _CAP_Enter_Function(void *p) 
{ 
    if (p != main) 
     printf("Enter function (at address %p) at %d\n", 
      p, GetTickCount()); 
     return; 
} 
void _CAP_Exit_Function(void *p) 
{ 
    if (p != main) 
     printf("Leaving function (at address %p) at %d\n", 
      p, GetTickCount()); 
    return; 
} 
+0

Gracias, Shane. Como dijiste, no es exactamente lo que estaba buscando. Pero sigue siendo una gran pista. Ya tengo algunas clases de utilidad para la creación de perfiles, pero hasta ahora las estaba agregando manualmente a través de macros en el código sospechoso solamente. –

0

Si está haciendo desarrollo de .NET CF, consulte Power Toys for .NET CF 3.5 para ver las utilidades que pueden ayudarlo a identificar los cuellos de botella, especialmente los relacionados con la memoria.

+0

Lo siento, debería haber mencionado, yo era consciente de Power Toys pero en mi caso no se puede utilizar porque el código es nativa. –

9

Windows CE apoya la Remote Call Profiler (si el OEM añadió soporte para él) fuera de la caja. Las imágenes de WinMo, creo, generalmente ya tienen soporte en las imágenes. Para CE, necesita establecer la variable de entorno IMAGEPROFILER (según las propiedades del proyecto).

Lo que no está claro en MSDN es cómo instrumentar una aplicación que no está construida con Platform Builder, pero en realidad es bastante simple. Debe agregar el/callcap swith a la línea de comando del compilador y agregar cecap.lib a la configuración del vinculador.

Por supuesto, necesitará una herramienta para capturar y visualizar los datos del perfilador. Para eso, puede usar la versión de evaluación de Platform Builder (5.0 o 6.0) (la evaluación es gratuita) o eVC 4.0 (también gratis).

Para obtener más información sobre el uso del generador de perfiles, Sue Loh del equipo central de CE ha escrito un poco al respecto.

+0

+1 Gracias por sugerir esto. Es un salvavidas :) Optimicé mi blitter como loco con sus datos perfilados. – legends2k

3

He escrito un perfilador de Call Graph para Windows Mobile. Actualmente (a partir de enero de 2010) en la fase Beta, y se puede descargar de forma gratuita.

http://www.codeprophet.co.cc

HTH

-Zak

+0

Parece prometedor, lo intentaré. –

+0

Parece que el proyecto se ha mudado a http://codeprophet.co.uk – oscode

Cuestiones relacionadas