Browse by Tags

Traza de asp.net y el consumo de memoria
Tuesday, December 18, 2007 2:24 AM
El siguiente caso a presentar está relacionado con el alto consumo de memoria de una aplicación. Como el título lo dice, está relacionado con el uso de la traza de asp.net (trace en web.config .) El escenario era similar a lo descrito ahora. La aplicación analizada empezaba a consumir memoria y aunque tenía momentos donde la liberaba, la impresión general era... Read More...
Contadores de rendimiento de aplicaciones de 32 bits en sistemas de 64 bits
Tuesday, November 13, 2007 11:03 PM
Durante el análisis de Microsoft.VisualBasic.dll tuve problemas para poder ver los contadores de rendimiento de la aplicación desarrollada con Visual Studio 2003 y que se ejecutaba sobre el Framework 1.1, en un sistema XP 64 bits. En ese momento inferí que podría deberse a que la aplicación estaba compilada para 32 bits y se estaba ejecutando en un sistema de... Read More...
by pmackay | with no comments
Filed under: , ,
Microsoft.VisualBasic.dll, ¿Eres tan malo como dicen?
Thursday, September 27, 2007 2:16 AM
Algunos años atrás, todo lo relacionado con Visual Basic (VB) 6.0 tendía a ser menospreciado o subvalorado. Los desarrolladores que utilizábamos VB 6.0 no éramos los primeros en levantar la mano para decir orgullosos que lo utilizábamos, como sí lo hacían los que usaban C o C++. Una pequeña fracción de esa baja estima se mantuvo aún cuando apareció .net. Era... Read More...
Entre las excepciones y la flojera de los desarrolladores
Friday, July 20, 2007 5:07 AM
Una de las recomendaciones importantes en el desarrollo de código es la "no utilización de excepciones para evitar realizar validaciones." ¿A qué me refiero? A usar try/catch para no tener que escribir código que valide algo. Total, si se cae, en el catch retorno que es falso, si no se cayó, entonces retorno verdadero. Así no es necesario codificar... Read More...
by pmackay | 5 comment(s)
Filed under: ,
¿Por qué no debo compilar en modo debug?, Parte III
Thursday, July 12, 2007 5:38 AM
Como lo mencioné al terminar el segundo post sobre por qué no debo habilitar debug=true en web.config , la tercera entrega vendría relacionada con optimizaciones a nivel de código IL. Si no leíste los posts anteriores, te recomiendo hacerlos, aunque este no es la continuación de ninguno de los dos. Las direcciones son: http://msmvps.com/blogs/pmackay/archive... Read More...
by pmackay | 3 comment(s)
Filed under: ,
Concatenación ultra rápida en Visual Basic 6.0 (ejercicio mental)
Sunday, June 10, 2007 4:05 AM
Después de una agradable tarde de relajo en el hotel Hilton de Sao Paulo, he decidido "jugar" un rato en el computador y echar a andar el cerebro. Aunque el desarrollo utilizado Visual Basic 6.0 es cada día menos, decidí inventar un algoritmo (o función) para concatenar string que fuese más rápida que las que he visto en internet. Honestamente no he... Read More...
by pmackay | with no comments
Filed under:
Configurando threads en machine.config
Saturday, June 09, 2007 5:28 AM
La configuración de threads y conexiones de asp.net es un tópico oscuro. De algunos libros o KBs se puede obtener información, pero a mi entender , ninguna de ellas explica claramente cómo deben configurarse las opciones disponibles. Las opciones que hago mención son las que se encuentran en el archivo machine.config , dentro de las siguientes secciones: system... Read More...
by pmackay | 7 comment(s)
Filed under: ,
¿Por qué debo definir "debug=false" en web.config?, Parte II
Wednesday, May 23, 2007 5:53 AM
En la primera parte de este artículo revisamos parte del impacto de definir debug ="true" en nuestro archivo de configuración web.config . Dentro de lo estudiado, abarcamos la revisión de la carpeta temporal de asp.net y cómo se generan los archivos de código de las páginas y controles, para finalizar con la generación de los ensamblados que resultan... Read More...
by pmackay | 8 comment(s)
Filed under:
numRecompilesBeforeAppRestart sí funciona en Asp.Net 1.1
Sunday, May 13, 2007 11:15 PM
Mientras trabajaba en la segunda parte del artículo ¿Por qué debo definir "debug=false" en web.config?, Parte I , leyendo la documentación de MSDN en el link de más abajo, me encuentro con lo siguiente: Link: http://msdn2.microsoft.com/en-us/library/system.web.configuration.compilationsection.numrecompilesbeforeapprestart(VS.80).aspx El extracto del... Read More...
by pmackay | 8 comment(s)
Filed under:
¿Por qué debo definir "debug=false" en web.config?, Parte I
Tuesday, May 08, 2007 2:54 AM
Uno de los atributos menos comprendidos del archivo web.config es el relacionado con la compilación ( compilation ). Cuando yo desarrollaba y estaba encargado de manejar sitios en producción, siempre me preocupaba de que el atributo estuviese en false en producción, ya que había leído que así debía ser y no me lo había cuestionado mayormente, fundamentado en... Read More...
by pmackay | 8 comment(s)
Filed under:
Adiestramiento del Garbage Collector (GC) y contadores de rendimiento
Monday, April 30, 2007 1:36 AM
Hace un tiempo posteé acerca del uso de liberación de memoria en el framework , post que podrás encontrar aquí , en donde mencionaba que el GC se auto adiestraba para funcionar eficientemente, y que por eso no es recomendable forzarlo a recolectar la memoria, sino que dejarlo a él que lo haga. Hoy hablaremos de cómo se auto adiestra el GC para realizar recolecciones... Read More...
by pmackay | 4 comment(s)
Filed under: ,
La contradicción de las aplicaciones ultra parametrizables y customizables
Saturday, April 21, 2007 11:05 PM
Estas últimas semanas han estado un poco aburridas. No se han presentado problemas de aplicaciones pero seguramente se presentarán... tarde o temprano. Sin embargo, a falta de problemas que se presentan, nos encargamos de buscarlos, o más bien dicho, de forzarlos. Una de las últimas actividades realizadas corresponde a la revisión de una aplicación que será liberada... Read More...
by pmackay | 4 comment(s)
Filed under: ,
Liberación de memoria en código manejado (¿Dispose, Finalize, Object = Nothing, GC.Collect?)
Wednesday, March 28, 2007 5:54 AM
Para quienes venimos del desarrollo utilizando Visual Basic 6.0, una de las primeras cosas que nos enseñan al empezar a utilizar código manejado (framework), es que ya no es necesario liberar la memoria porque “ .net lo hace por ti ”. Esta última parte entre comillas, además de ser incorrecta en su definición, es muy engañosa/confusa para quién es nuevo utilizando... Read More...
by pmackay | 15 comment(s)
Filed under: ,
Dispose en SPWeb, SPSite y SPListItemCollection, desarrollando Web Parts para SharePoint
Sunday, March 11, 2007 9:26 PM
Después de una extenuante semana de viaje viendo un caso fuera de Chile, el cual me obligó a estar offline casi todos los días, me doy un tiempo para escribir y dar a conocer los usuales problemas con que uno se enfrenta cuando analiza web parts que corren sobre SharePoint*. Hasta hoy, he visto web parts desarrolladas que normalmente tienen pérdidas de memoria... Read More...
by pmackay | with no comments
Filed under: , ,
Concatenación de strings y como “matar” un servidor
Tuesday, February 27, 2007 12:41 AM
Uno de los problemas que usualmente uno enfrenta es el alto uso de CPU de un servidor y la “poca” capacidad de procesamiento de éste. La forma tradicional de analizar estos problemas de alto uso de CPU es tomar dumps de memoria mientras la CPU esta con alto uso y ver que está ejecutando cada thread en el momento de la “foto”. Para el caso que revisé hace un tiempo... Read More...
Minimizar el impacto de subidas a producción (waitChangeNotification, maxWaitChangeNotification)
Tuesday, February 13, 2007 1:18 AM
A pesar de que no es recomendado, muchas veces nos hemos visto forzados a subir cambios a producción “en caliente.” Estos cambios en caliente generalmente se deben por cambios en machine.config , web.config o el copiado de nuevos assemblies a la carpeta bin , y estos cambios obligan a que se reinicie el dominio de la aplicación asp.net. Como dominio de aplicación... Read More...
by pmackay | 1 comment(s)
Filed under: ,
Variables de sesión y costos escondidos
Wednesday, February 07, 2007 3:49 AM
Hace algunas semanas estuve de visita en un cliente, en donde me encontré con una aplicación que cada cierto tiempo, experimentaba excepciones de escasez de memoria (Out Of Memory). Como vimos en el post sobre la analogía entre la memoria de un servidor y un restaurant, http://msmvps.com/blogs/pmackay/archive/2007/02/02/netadmin.aspx , una de las causas por las... Read More...
by pmackay | with no comments
Filed under: , ,
Administración de la memoria en Windows y .NET
Friday, February 02, 2007 1:22 AM
Quienes hemos desarrollado aplicaciones o hemos estado a cargo de la mantención de un sitio web, en alguna oportunidad nos topamos o seguramente lo haremos en el futuro, con una excepción del tipo "Out Of Memory Exception" o "OOM Exception". ¿Por qué ocurren los Out Of Memory Exceptions? Quien haya visto esto, se preguntará, ¿Cómo es posible... Read More...
by pmackay | 8 comment(s)
Filed under: ,