jueves, 19 de marzo de 2009

Perfomance en ASP.NET

Algunas veces sucede que al hacer un request a una pagina X, no encontramos que estamos haciendo llamdas identicas
a la base de datos, ya sea porque tenemos distintos objetos de negocio que utilizan los
mismos proveedores de datos (DAL) o porque dentro de las misma pagina se encuentran insertos dos o más controles de usuario (ascx).
Ahora bien, una manera de optimizar nuestros tiempos de respuesta sin tener que ir a la base de datos dos o más veces es utilizar la coleccion items inserta dentro del objeto
HttpContext.Current.

Para que les quede más claro, un ejemplo escrito en VB.NET




En el codigo anterior lo primero que se hace es consultar si existe un objeto UserInfo cuya clave sea "user" & userID.toString, y en caso que no se encuentre
se hace la llamda a la base de datos y se inserta el objeto dentro de la coleccion items de tal forma que la siguiente llamada al metodo GetUserByUserId utilize
la informacion guardada en nuestra hashtable items.

El post es corto y no entra en detalles, pero creo que se entiende.

martes, 10 de febrero de 2009

Perfomance: Como recorrer un ArrayList

Alquien se ha puesto a pensar, cual es la mejor forma de iterar sobre un objeto del tipo de dato arraylist?. Las alternativas para poder iterar sobre este tipo de dato es:
  • Usar for
  • Usar un foreach
  • o un ciclo while utilizando GetEnumerator()
Para salir de esta dudita, cree tres metodos para revisar cual de ellos es el menor tiempo toma en ser ejecutado.
Aqui va el codigo,

Usando for:



Usando forEach


Usando GetEnumerator


Y mis resultados fueron:




Bueno, llego hasta aqui... saquen sus propias conclusiones :)
Saludos,