Datapayasadas

agosto 1, 2008

Profiling: Analizando el rendimiento de nuestros programas

Filed under: .Net, Desarrollo, Herramientas, Software — Etiquetas: — Matías @ 8:32 pm

Buenas,

Hoy les voy a contar sobre un programa que encontré y me resultó muy útil a pesar de lo poco que lo usé, pero antes de describirlo voy a hacerles una pequeña introducción.

¿Alguna vez sintieron la necesidad de ver que parte de nuestro programa es la que más recursos consume? ¿de ver cuanto tarda en promedio en ejecutarse nuestro super método HacerTodo()?. Si se sintieron identificados con alguna de estas situaciones, entonces, esta nota posiblemente te resulte útil.

¿Qué es el profiling?. Recurramos a la Wikipedia. Cito:

En ingeniería de software, análisis de performance, comúnmente llamado profiling, es la investigación del comportamiento de un programa de computadora usando información reunida del análisis dinámico del programa (cuando este esta corriendo) en oposición al análisis estático (análisis de código). La meta del análisis de performance es determinar que partes del programa se pueden optimizar para ganar velocidad u optimizar el uso de memoria.

Usualmente el análisis de performance tiene una gran importancia aunque (como muchas otras practicas importantes) no se realiza con la seriedad necesaria. Se suele decir que el profilin tiene que ocupar un 90% del tiempo del desarrollo de una aplicación.

Suena interesante, ¿no?.

Uno de los programas que probé (de hecho, fue el único) y quedé encantado con él es dotTrace, en su versión 3.1. Lamentablemente este software no es ni OpenSource ni gratuito, aunque por suerte, provee una demo totalmente funcional por 10 días… lo cual me parece un punto para destacar.

Lo que hace este software es analizar nuestro programa en tiempo de ejecución (no es necesario tener el código fuente a mano, pasandole el ejecutable basta). Nos muestra método por método donde se demora más, ilustrando así los cuellos de botella o simplemente algún bucle mal armado que se nos pasó; cuantas llamadas recibió cada método; cuanta memoria utiliza cada proceso … entre otras cosas.

Seguramente a esta altura estarán deseando ver como se ve todo, bien … acá está:

Otra herramientas para realizar esto son:

Gratuita y con código fuente:

  • NPerf: http://www.codeproject.com/KB/architecture/nperf.aspx
  • Comerciales:

  • C# Profiler Tool: http://www.semanticdesigns.com/Products/Profilers/CSharpProfiler.html
  • .NET Memory Profiler: http://memprofiler.com/
  • ANTS Profiler: http://www.red-gate.com/products/ants_profiler/index.htm
  • Intel VTune Performance Analyzer: http://www.intel.com/cd/software/products/asmo-na/eng/239144.htm
  • Pueden encontrar más sobre éste tema en el artículo Find Application Bottlenecks with Visual Studio Profiler o sino realizando una búsqueda en google.

    Es todo, espero que les resulte tan útil como a mi y si encuentran algun otro software recomendable, no duden en comentarlo.

    ¡Hasta la próxima!

    Anuncios

    1 comentario »

    1. muy buen articulo! realmente util…

      Tengo que aclarar que el Visual Studio 2008 Team Suite trae integradas estas funciones de profiling…incluso trae asistentes y permite realizar informes con diferentes metricas del codigo…

      saludos

      Comentario por pabloide86 — agosto 1, 2008 @ 8:57 pm


    RSS feed for comments on this post. TrackBack URI

    Responder

    Introduce tus datos o haz clic en un icono para iniciar sesión:

    Logo de WordPress.com

    Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

    Imagen de Twitter

    Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

    Foto de Facebook

    Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

    Google+ photo

    Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

    Conectando a %s

    Blog de WordPress.com.

    A %d blogueros les gusta esto: