Ver Mensaje Individual
  #11  
Antiguo 25-05-2010
Avatar de Faust
Faust Faust is offline
Miembro
 
Registrado: abr 2006
Ubicación: México D.F.
Posts: 930
Reputación: 21
Faust Va por buen camino
Cita:
Empezado por Neftali Ver Mensaje
Se parece bastante (por no decir mucho) a un problema que he "sufrido en mis propias carnes" con una aplicación.
En mi caso está relacionado con lo que comenta Mamcx. La relación entre units.

Nuestra aplicación también trabaja con un gran número de Units (del mismo orden que la tuya); está dividida en packages y nos sucedió algo similar. A partir de una fecha y sin razón aparente empezó a bajar el rendimiento de compilación de algunos packages de forma alarmante.

Después de mucho revisar encontramos que eran los USES de algunas Units en otras. Es difícil explicar la situación, pero ya sabes que se puede producir "circularidad" entre units (en el USES) siempre que una se coloque en Interficie y la otra en el uses de Implementación.

al crear "esta circularidad" aunque no daba error de compilación provocaba que a la hora de compilar esta se ralentizara de forma exagerada. El porqué exacto no se cual es, pero parecía como que realizara la compilación de las mismas units una y otra vez.

El hecho de cambiar algunas definiciones de sitio y evitar algunas de estas circularidades evitó el problema.
Ahora que comentas eso Neftalí, recuerdo que alguna vez me pasó que era el orden, no recuerdo exactamente, pero era algo así:

Código Delphi [-]
uses
  UnitX, UnitY, UnitZ;

Tardaba más pues algunas unitdades se añadieron al ingresar componentes al formulario o al escribirlas manualmente y era algo difícil de encontrar, pero se me ocurrió cambiarlas de orden p. ej. así:

Código Delphi [-]
uses
  UnitZ, UnitX, UnitY;

Y problema solucionado incluso compilaba rapídisimo, como una aplicación vacía, no me dediqué al buscar el porque de esto, pero ahora me doy una idea con el comentario de Neftalí, se puede deber a referencias circulares, a las sentencias colocadas en las sección initialize de algunas unidades y como un caso aparte también se puede deber a querys abiertos en tiempo de diseño y que en tiempo de ejecución tardan un poco más.

Saludos.
__________________
Herr Heins Faust
Responder Con Cita