2011-11-30 16 views
5

Estoy buscando una forma simple y reutilizable de registrar el tiempo necesario para ejecutar un método en mi proyecto .NET (MVC) y registrarlo usando NLog y se preguntó si alguien tenía alguna sugerencia sobre cómo implementar esto?Una forma eficiente de registrar el tiempo necesario para ejecutar un método en C#

Para mantener limpio el código y la legibilidad, realmente no quiero tener que integrarlo en mi código si es posible.

Si alguien tiene alguna sugerencia, me encantaría escucharla.

+0

No necesariamente para el registro ... pero el EQATEC Profiler es más agradable para, bueno, perfilar. Estoy seguro de que existen otras herramientas similares. Funciona reescribiendo el ensamblado para la entrada/salida del método para la información de temporización. No es el menos intrusivo ... –

Respuesta

3

Es posible que desee echar un vistazo a esto:

http://code.google.com/p/mvc-mini-profiler/

Escrito por las buenas personas en stack exchange.

+1

como una advertencia: para cronometrar un método, debería agregar un poquito de código. * Podría * hacerse a través de AOP, pero consideramos que: el rendimiento es una característica; está bien escribir código para admitir características –

10

Uso Stopwatch clase

Stopwatch time = Stopwatch.StartNew(); 
time.Stop(); 
var milliseconds= time.ElapsedMilliseconds; 
+2

Gracias. Esto es lo que hago actualmente. Estoy buscando una forma de implementar esto sin escribir ningún código en el método. – Nick

5

Dado que usted menciona que le gustaría evitar el cambio de código existente, este es un caso en el AOP (programación orientada a aspectos) viene muy bien

Aquí hay un post que describe exactamente este escenario usando PostSharp: http://theburningmonk.com/2010/03/aop-method-execution-time-watcher-with-postsharp/

+0

en nuestro caso, también publicamos estas medidas de tiempo en Amazon CloudWatch para que tengamos una vista en tiempo real de las acciones y podemos configurar alarmas alrededor de esas métricas para que nos notifiquen, por ejemplo, si hay problemas de latencia y reaccione rápidamente (http://theburningmonk.com/2012/03/recording-for-my-webinar-with-postsharp/) – theburningmonk

Cuestiones relacionadas