Tengo un enigma aquí. He estado tratando de acelerar una determinada función, ahora cuando ejecuto mi aplicación, lleva entre 16 y 17 segundos ejecutar esta función.¿Por qué mi código es más rápido cuando se ejecuta con Performance Analysis?
Ahora si ejecuto lo mismo con Performance Analysis ejecutándose a su lado en VS2010, para encontrar las secciones más lentas, el código se ejecuta en ~ 6-7 segundos. Ahora, si mi código se ejecutó tan rápido, sería perfectamente aceptable para la aplicación.
He intentado ejecutar el código (sin análisis de perf) a través de los perfiles de depuración y liberación, con poca o ninguna diferencia.
¿Alguien tiene alguna idea de lo que puede estar ocurriendo aquí?
Algunas notas: la función en cuestión utiliza bastante LINQ to SQL y el análisis de rendimiento que estoy utilizando es CPU Sampling.
Heisenbug. ¿Obtienes los mismos 16-17 segundos si compilas en modo de lanzamiento (frente a la depuración)? – Robaticus
¿Y ejecutó el programa fuera de VS? Simplemente ejecutar un programa en VS con el depurador conectado deshabilita muchas optimizaciones de jitter. – CodesInChaos
Robaticus, sí (como se indicó). CodeInChaos: noto una gran diferencia entre el VS externo y el interno, sí, pero esperaba eso. –