Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-11-2008
dnieto dnieto is offline
No confirmado
 
Registrado: mar 2004
Posts: 6
Poder: 0
dnieto Va por buen camino
¿Que hacer cuando compilar es un trauma?

Hola a tod@s.
A ver si hay alguien que me pueda echar un cable.

En mi curro se trabaja con Delphi 7/Oracle (hasta aqui no hay problema), pero cuando modifico cualquier proyecto y compilo, puede tardar de 5 a 15 minutos hasta que termina.
No es un problema de que los proyectos sean grandes (con el que estoy ahora tienen menos de 2500 lineas, tiene 4 formularios y tarda lo mismo).
No es un problema de rendimiento de mi maquina (ya mire el administrador de tareas y el espacio libre del disco duro)
No es un problema de la bbdd ya que su rendimiento es optimo.
Creo que tampoco es un problema de red ya que trabajo en local y ninguno de los paquetes de componentes esta en red.
Lo unico caracteristico es que tengo instalados una barbaridad de paquetes con mogollon de componentes (de los cuales en el proyecto a lo mejor utilizo una docena) pero no se si esto afecta realmente o no en el tiempo de compilación.
Ya probe a cargarme los DCU y volver a compilar y sigo en las mismas.
¿Puede que tenga algo que ver el echo de trabajar con XP?


¿Alguien podría indicarme un libro/link/.../..., donde se explique si se puede y como optimizar las compilaciónes?

Gracias anticipadas
Responder Con Cita
  #2  
Antiguo 19-11-2008
Avatar de donald shimoda
donald shimoda donald shimoda is offline
Miembro
 
Registrado: jul 2008
Ubicación: Argentino en Santa Cruz de la Sierra
Posts: 1.083
Poder: 17
donald shimoda Va por buen camino
Cita:
Empezado por dnieto Ver Mensaje
Hola a tod@s.
A ver si hay alguien que me pueda echar un cable.

Gracias anticipadas
Le apuesto mis 20 pesos al antivirus. Desactivalo al compilar y compara la velocidad.

Si es el antivirus añade todas las extensiones de pascal e intermedias a las excepciones del AV y sale con fritas.

Saludos
__________________
Donald Shimoda [Team RO] - Blogs: Remobjects Pascal
Responder Con Cita
  #3  
Antiguo 19-11-2008
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Respecto al disco, no sólo mires la cantidad de espacio libre sino también y sobre todo su distribución. Defragmentalo porque eso suele acelerar muchísimo las cosas.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #4  
Antiguo 19-11-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Hola, puedes probar de cambiar los paquetes de componentes que usa tu proyecto (Project->Options->Packages) para que no tenga que linkarlos todos (creo que va por alla la cosa). Tambien, si tienes los .dpk, cambiarlos todos a 'explicit rebuild' (.dpk->Project Options->Description), o ya mas directamente, desinstalarlos y instalarlos en el momento en que los necesites. Como te decia al principio, creo que es mas el problema de linkarlos todos. saludos.
Responder Con Cita
  #5  
Antiguo 20-11-2008
locotenentul locotenentul is offline
Miembro
 
Registrado: may 2005
Posts: 56
Poder: 19
locotenentul Va por buen camino
eres un afortunado...

Ya se que lo que voy a decir no te aydara nada pero lo digo.
Yo trabaje en una compania donde la compilacion tardaba mas de 2 horas en hacerse...es decir, una barbaridad...eran mas de 5 millones de lineas de codigo...en otra la compilacion duraba 1 ora y algo...asi que eres un afortunado amigo

Locotenentul
Responder Con Cita
  #6  
Antiguo 20-11-2008
Avatar de donald shimoda
donald shimoda donald shimoda is offline
Miembro
 
Registrado: jul 2008
Ubicación: Argentino en Santa Cruz de la Sierra
Posts: 1.083
Poder: 17
donald shimoda Va por buen camino
Cita:
Empezado por locotenentul Ver Mensaje
Ya se que lo que voy a decir no te aydara nada pero lo digo.
Yo trabaje en una compania donde la compilacion tardaba mas de 2 horas en hacerse...es decir, una barbaridad...eran mas de 5 millones de lineas de codigo...en otra la compilacion duraba 1 ora y algo...asi que eres un afortunado amigo

Locotenentul
Pero no estamos hablando de IBM S/360 eh?

No seriamente, lo que cuentas es con DELPHI? Yo compilo a diario proyectos con 1 millón de lineas, que tardan 30 segundos en compilar, no veo la relación a 2 horas???

Y eso que están en una unidad truecrypt con tres algoritmos de encriptado, accedida a través de virtualbox, mejor dicho peor imposible.

Saludos
__________________
Donald Shimoda [Team RO] - Blogs: Remobjects Pascal
Responder Con Cita
  #7  
Antiguo 20-11-2008
Avatar de Kipow
Kipow Kipow is offline
Miembro
 
Registrado: abr 2006
Ubicación: Guatemala
Posts: 329
Poder: 19
Kipow Va por buen camino
Cita:
Empezado por donald shimoda Ver Mensaje
Pero no estamos hablando de IBM S/360 eh?

No seriamente, lo que cuentas es con DELPHI? Yo compilo a diario proyectos con 1 millón de lineas, que tardan 30 segundos en compilar, no veo la relación a 2 horas???

Y eso que están en una unidad truecrypt con tres algoritmos de encriptado, accedida a través de virtualbox, mejor dicho peor imposible.

Saludos
Yo igual mi proyecto principal es de 1millon de lineas aprox y no tarda casi nada, creo que no nos has dicho en que equipo estas compilando, porque is es un 286 pues creo que si tardaria algo en compilar.

Donald como es eso del virtualbox, el Delphi lo tenes en el Virtualbox y la info en otro disco aparte con el truscrypt?, yo quiero ver si hago eso pero usando como S.O. host ubuntu, que ya me harte de las BSOD
Responder Con Cita
  #8  
Antiguo 20-11-2008
dnieto dnieto is offline
No confirmado
 
Registrado: mar 2004
Posts: 6
Poder: 0
dnieto Va por buen camino
Cool

Cita:
Empezado por coso Ver Mensaje
cambiar los paquetes de componentes que usa tu proyecto (Project->Options->Packages) para que no tenga que linkarlos todos (creo que va por alla la cosa). Tambien, si tienes los .dpk, cambiarlos todos a 'explicit rebuild' (.dpk->Project Options->Description), saludos.
Gracias a todos
Prove lo de quitar el Antivirus y si, parece que reduce notablemente el tiempo de compilación, pero ya me han dicho los de sistema que si vuelvo a inhabilitar el antivirus me dan una colleja.
Respecto a lo de Defragmentar el Ordenador lo hice hace una semana (lo cual mejoro algo el tiempo de compilación pero seguia tardando mucho).
Respecto a lo que dijo coso :
Del primer consejo : Muchas gracias, me armare de paciencia y probare (esta gente tiene unos 130 paquetes de componentes)
Del segundo consejo : ¿A que te refieres?, no he encontrado el apartado descripción
De todas formas, si el problema, crees que puede ir por el tema de tener tantos paquetes de componentes, ¿no hay alguna forma de configurarlo para que solo compile los objetos existentes independientemente del proyecto?

Vuelvo a decirlo, muchas gracias a todos
Responder Con Cita
  #9  
Antiguo 20-11-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Veo que llego un poco tarde, pero intentaré dar mi opinión.
Nosotros nos hemos ido encontrando con este problema, a medida que los paquetes de la aplicación han ido creciendo. En nuestro caso la aplicación está formada por multitud de paquetes que dependen unos de otros, aparte de los de la VCL, y los de componentes de terceros.

(1) En cuento al antivirus, si no te dejan desactivarlo; Aunque yo intentaría replantearle esto a los de sistema, explicándoles que va a hacerse durante las compilaciopnes, lo que sí puedes hacer es añadirle determinadas excepciones en cuanto a tipos de ficheros directorios y demás, para que "deje un poco tranquilos" a los ficheros de tu proyecto.

(2) DelphiSpeedUp, FastMM y demás añadidos pueden mejorar un poco la velocidad del procesador a la hora de compilar.

A parte de estas, hay otras dos cosas que a nosotros y para nuestro caso han sido "drásticas" y decisivas a la hora de compilar/ejecutar.

La primera va en relación a la que ha dicho coso, intentar siempre que vas a compilar desinstalar todos los packages del proyecto.
Y la segunda, después de mucho pelearme con AQTime y los tiempos de carga de packages llegamos a la conclusión de que esta línea:

Código Delphi [-]
    CheckForDuplicateUnits(Module);

que hay en la Unit SysUtils demora "tremendamente" la carga de packages.

Piensa que si estás compilando el package A y este package lo necesita B que está instalado, antes de compilar A, Delphi descarga B, luego compila A y luego vuelve a cargar B. Piensa qué pasa si tienes 25 packages en tu aplicación.

Así que la solución fue modificar SysUtils para que no ejecutara este procedimiento con nuestros packages y volver a recompilar la VCL.

Un saludo.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #10  
Antiguo 20-11-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Hola de nuevo, ese apartado esta en el 'project->options' de cada .dpk, o sea del paquete. Lo bueno seria que tuvieras todos los componentes ya compilados y, si debes hacer algun cambio en ellos, entonces mandar tu compilar aquel paquete en concreto (explicit rebuild).

Cita:
llegamos a la conclusión de que esta línea:
Código Delphi [-] CheckForDuplicateUnits(Module);

que hay en la Unit SysUtils demora "tremendamente" la carga de packages.
buen truco

Última edición por coso fecha: 20-11-2008 a las 11:16:53.
Responder Con Cita
  #11  
Antiguo 20-11-2008
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Se me acaba de ocurrir que una posible causa podría ser la cláusula USES. Delphi tiende a añadir módulos automáticamente a USES y no quita los que no utiliza. Esto hace que se añadan dependencias innecesarias que obligan a recompilar unidades sin que estas hayan cambiado.

Por ejemplo, cada vez que se crea una ventana o diálogo (Form) Delphi lo añade a la cláusula USES del módulo principal (el archivo DPR) aunque este no lo utilice. Además, suele crear un objeto y lo añade al objeto Application.

En las opciones de compilación hay opciones para evitar esto, de forma que sólo se añadan al módulo principal aquellas unidades, módulos y ventanas que se necesiten.

Si puedes, revisa las listas USES a ver si hay unidades que no necesiten. Recuerda que las dependencias a veces se dan en cascada, y que una única unidad "no necesaria" puede provocar que se recompilen varios archivos. Yo lo hice con un proyecto de punto de venta hace años y realmente aceleró la compilación, aunque nunca llegó a ser de más de veinte minutos.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #12  
Antiguo 20-11-2008
Avatar de donald shimoda
donald shimoda donald shimoda is offline
Miembro
 
Registrado: jul 2008
Ubicación: Argentino en Santa Cruz de la Sierra
Posts: 1.083
Poder: 17
donald shimoda Va por buen camino
Cita:
Empezado por dnieto Ver Mensaje
Gracias a todos
Prove lo de quitar el Antivirus y si, parece que reduce notablemente el tiempo de compilación, pero ya me han dicho los de sistema que si vuelvo a inhabilitar el antivirus me dan una colleja.
Amigo , no necesitas desactivarlo. Dile a los cerebritos de sistema que lo configuren para que NO chequee *.pas *.dfm *.dcu *.dpk , habría otros temporales que agregar que ahora no recuerdo pero con eso rulas (la ventaja de usar un entorno virtualizado con escaneo automatico desactivado ).

Saludos.
__________________
Donald Shimoda [Team RO] - Blogs: Remobjects Pascal
Responder Con Cita
  #13  
Antiguo 20-11-2008
Avatar de donald shimoda
donald shimoda donald shimoda is offline
Miembro
 
Registrado: jul 2008
Ubicación: Argentino en Santa Cruz de la Sierra
Posts: 1.083
Poder: 17
donald shimoda Va por buen camino
Cita:
Empezado por Kipow Ver Mensaje
Yo igual mi proyecto principal es de 1millon de lineas aprox y no tarda casi nada, creo que no nos has dicho en que equipo estas compilando, porque is es un 286 pues creo que si tardaria algo en compilar.

Donald como es eso del virtualbox, el Delphi lo tenes en el Virtualbox y la info en otro disco aparte con el truscrypt?, yo quiero ver si hago eso pero usando como S.O. host ubuntu, que ya me harte de las BSOD
En Ubuntu monto mis unidades truecrypt y las accedo a través de carpetas compartidas de virtualbox. Delphi esta en VMs de virtualbox, exacto. Es mas tengo varias porque siempre testeo betas de RemObjects por ejemplo, y ahora mismo Prism. Para evitar cualquier problema, agarro una VM con Xp virgen (casi como agarrar un cd virgen ) y le instalo lo que deseo probar y nadie sale lastimado.

Saludos.
__________________
Donald Shimoda [Team RO] - Blogs: Remobjects Pascal
Responder Con Cita
  #14  
Antiguo 21-11-2008
dnieto dnieto is offline
No confirmado
 
Registrado: mar 2004
Posts: 6
Poder: 0
dnieto Va por buen camino
Talking

Un millon de gracias a todos por vuestro conocimiento y vuestro tiempo
Responder Con Cita
  #15  
Antiguo 22-11-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Cita:
Empezado por dnieto Ver Mensaje
Un millon de gracias a todos por vuestro conocimiento y vuestro tiempo
Solucionaste el problema? seria bueno que nos comentes la causa y solucion no?, pues yo estoy perdido!
__________________
RTFM > STFW > Foro > Truco > Post > cHackAll > KeBugCheckEx
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Cuando elegir una particion primaria y cuando una extendida o logica JoAnCa Varios 1 17-05-2008 23:35:43
quiero hacer un programa que arranque automaticamente cuando arranque windows federiconqn21 Varios 7 24-04-2007 22:31:35
Compilar un componente Active X cuando interese akilar Varios 0 23-04-2006 17:33:38
Cómo hacer que se ejecute mi aplicación cuando se abra Internet Explorer? JuanErasmo API de Windows 3 19-04-2006 19:12:33
como hacer que un scrollbox cuando esta deshabilitado se ponga gris? orfeo Varios 1 02-03-2004 06:09:27


La franja horaria es GMT +2. Ahora son las 06:34:34.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi