Datapayasadas

diciembre 21, 2011

Performance Tunning: Identificando cuellos de botella

Filed under: .Net, ASP.NET, Herramientas — Etiquetas: , , , , — pabloide86 @ 12:45 am

Holasss amigos! Hacia muchísimo que no escribía por acá! El motivo de este post es compartir mi experiencia con respecto al tunning de performance de una aplicación, mas específicamente de una aplicación web.  Mas que nada para compartir algunas herramientas y procedimientos que me fueron muy útiles a la hora de identificar cuellos de botella en el código.

Por desgracia, este trabajo siempre suele dejarse para el final, cuando todo el trabajo ya esta hecho y estamos al horno con la entrega por lo que cualquier cambio impacta mucho! Asique manos a la obra..

(more…)

Anuncios

octubre 22, 2009

Pimp my Visual Studio / Enchúlame el Visual Studio

Filed under: Boludeces, Desarrollo, Herramientas — Etiquetas: — Matías @ 12:34 pm

Levante la mano aquel que todavía no se cansó de ese fondo blanco con letras negras y colores apagados con el que Visual Studio nos tiene acostumbrados desde tiempos inmemoriales. O si sos uno de esos que ya no aguanta más tener los ojos en compota cada vez que te quedas hasta tarde programando, donde la única fuente de luz es la brillante pantalla de tu notebook o desktop; o si simplemente mirabas Pimp My Ride y te gusta llevarlo a cada extremo de tu vida, hoy tengo la solución para ustedes, y no involucra ningún ¡llame ya!.

Ragnarok Grey

Ragnarok Grey

(more…)

octubre 28, 2008

Assembla 2.0: Nuevos planes

Filed under: Desarrollo, Herramientas — Etiquetas: , , — pabloide86 @ 10:35 pm

Buenas gentes como va? Hace unos días nos enteramos de una nueva version de este sitio para hostear proyectos.

Lamentablemente para nosotros va a haber cambios en las suscripciones y no van a dar mas soporte a espacios privados en forma gratuita. Para los proyectos publicos (como los Open Source) van a seguir ofreciendo soporte gratuito con las mismas herramientas. Y para los que ya poseen planes comerciales van a actualizar los planes que supuestamente son mucho mas flexibles.

El motivo que nos brindan es que debido a la creciente popularidad del servicio (que por cierto consideramos que es excelente!) hace que no den a basto con la demanda.

Esto nos lleva a empezar a analizar otras posibilidades para hostear nuestros proyectos personales y en otras herramientas de colaboración y seguramente vamos a estar compartiendo con ustedes cuales son las opciones que encontramos.

Por el momento el que mas se acerca en funcionalidades y facilidad de uso es http://www.bitbucket.org/

La mayor diferencia que tiene con Assembla es que BitBucket trabaja solo con Mercurial mientras que Assembla nos permite elegir entre SVN, Git, Mercurial e incluso un servidor externo de SVN.

Hasta la próxima!

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!

    mayo 27, 2008

    Gestion de Proyectos con Assembla

    Filed under: Herramientas — Etiquetas: , , — datapayasadas @ 4:11 am

    Cuando trabajamos solos no tenemos demasiado en que preocuparnos. Tenemos todo el control sobre que es lo que hacemos, como lo hacemos, donde lo guardamos, etc.

    Pero cuando tenemos que desarrollar junto a otras personas que ni siquiera estan fisicamente al lado nuestro aqui es donde comienza el despelote! Imaginense. Cientos de mails con attachments, o egroups en yahoo mal organizados o cualquier otro invento raro que intente organizar y coordinar el trabajo de varias personas.

    Para ello existe Assembla. Es un portal que nos proveera de herramientas tales como Trac, Tickets y Milestones que permitiran organizar todas las tareas relacionadas con la gestion de un proyecto de software y tambien hacer un seguimiento de que es lo que estan haciendo las otras personas. Ademas provee de un servidor privado de SVN el cual nos servirá para subir todo nuestro codigo fuente y tambien posee un Wiki para la documentacion y un espacio para subir archivos.

    Apenas podamos vamos a estar subiendo un tutorial mostrando todas las opciones que posee y como se usan.

    Eso es todo por ahora.
    Salutes

    Crea un blog o un sitio web gratuitos con WordPress.com.