Boletín mugperu Digital - Julio 2009!
  Search 
Friday, February 10, 2012 ..:: Foros de Discusión ::.. Register  Login
Foros MUGPERU Minimize
Subject: Dll's y rendimiento
Prev Next
You are not authorized to post a reply.

Author Messages
walterjpv
Posts:25

04/02/2010 02:51 PM  

Hola amigos del Mug

Tengo una consulta. En mi trabajo hay un aplicativo desarrollado en .net con web forms... que abarca varios puntos osea un sistema con varios modulos, pero todo está bajo un mismo proyecto (con sus 3 capas). Este proyecto al compilarlo genera una dll de aproximadamente 20 MB. Vale decir que si necesito modificar el codigo por muy pequeño que sea, tengo que regenerar todo y obtener una nueva dll.

En las estaciones cliente, el aplicativo corre lento.. Me podrían decir si esta enorme dll puede ser una de las causantes de esta lentitud?.. es mejor un aplicativo compuesto de varias dll's??

 

Gracias por su ayuda.

rcrbalcazar
Posts:130

06/02/2010 02:36 PM  
Hola pueste dire que he visto varias implementaciones de dlls, y tambien he visto dlls mu grandes, hasta de 40 Mb, y si bien es cierto se han puesto lentas emn realidad la lentitud no este relacionada al tamaño del dll, mas bien siempre se ha relacionado a la mala programación al tratar de colocar todo en un solo dll ya que ha menudo al tenerlo todo en un solo dll los programadores tieden a usar un monton de variables globales, muy poca modularidad, muchas pero muchas variables declaradas que despues no utilizan, muy bajo desacoplamiento, muchas funciones o metodo repetidos o con logicas distintas para hacer lo mismo (suele sucede con programas grandes tocados por muchos desarrolladores), etc. todo esto tiende a hacer del código algo muy pesado en ejecución.
Segun mencionas todo el código esta en un solo proyecto siguendo el modelo de 3 capas (entiendo entonces que tienes clases de datos, clases de negocio y clases de entidades en el mismo dll), lo que veo es que es realidad estas trabajando con un modelo seudo-3 capas, en realidad deberias tener 3 dlls separados por dos motivos principalmente: 1 - mantenibilidad (asi evitas tener que recompilar todo cada vez que haces una modificación), 2 - claridad en el código distribuido en cada capa (asi evitas algunos de los vicios y malas practicas en las que suelen caer los equipos de desarrollo).

Sería bueno tambien que revises el tema de la forma en la que trabaja el .Net Framework: solo convierte el código de la clase o metodo que utiliza a códgio maquina y lo sube a memoria solo cuando se realiza su primera invocacion, eso quiere decir que el hecho de ser un dll muy grande no implica que todo el dll se carga en memoria necesariamente.

Si estas trabajando con VB.Net te recomiendo que: actives el Option Strict a nivel de todo el proyecto (veras un monton de vicios que solemos cometer los desarrolladores VB.Net), evita usar el operador & para realizar concatenaciones en lugar de ellos utiliza String.Concat o StringBuilder.

Otro punto, trabajoso pero muy importante es mantener una buena documentación de todas las clases, metodos y funciones para evitar la duplicación de código y de esfuerzos.

Saludos.

Richard Rodriguez
ms_edgard
Posts:12

05/04/2010 09:32 PM  
Una dll enorme a mi parecer aunq nose que tendra dentro; el tamaño se reduce y el rendimiento aumenta, al menos en la capa de datos si usas application block o Nhibernet

Saludos
You are not authorized to post a reply.



ActiveForums 3.7
        
Copyright 2001-2012 MUGPERU   Terms Of Use  Privacy Statement