2012-09-06 76 views
5

Tengo un proyecto de Visual Studio que contiene una aplicación de Windows C# que hace referencia a una clase F #. Cuando ejecuto el perfilador de rendimiento de Visual Studio 2010 en el modo de instrumentación, no obtengo información de instrumentación para la clase F # distinta de la que llamó la aplicación C#.F # Performance Profiler Instrumentation Not Working

Cuando corro en modo de muestreo funciona bien.

He intentado ejecutar el proyecto en VS2012 y obtener el mismo problema.

¿Cómo obtengo que Visual Studio muestre la información de la instrumentación para la clase F #?

Respuesta

4

Cuando se ejecuta en modo de instrumentación, el generador de perfiles inyecta un poco de código en los puntos de entrada/salida de cada método para registrar los datos de rendimiento; sin embargo, solo inyecta este código de creación de perfiles en el ensamblado en el que está realmente perfilando (por ejemplo, su aplicación C#) y no en ninguno de los ensambles a los que se hace referencia.

Por lo tanto, necesita perfilar el conjunto F # directamente. Asumiré que es una biblioteca, en cuyo caso debe especificar su aplicación C# como el programa de inicio, de modo que el generador de perfiles iniciará la aplicación C# pero en realidad instrumentará y creará un perfil de la biblioteca F #. Consulte el artículo de MSDN How to: Specify the Binary to Start para conocer la configuración para hacer esto.

+0

Esto funcionó muy bien. –

+1

Utilicé el asistente de rendimiento de lanzamiento, seleccioné 'instrumentación' y luego 'una biblioteca de enlace dinámico'. Seleccioné el DLL y el exe de la carpeta en la que se construye el exe. Otra cosa, tuve que ejecutarlo en x86, ya que no parecía funcionar con ninguna CPU. Gracias por el helo. –