FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Compilacion lenta en Delphi 7
Hola gente del foro, como andan?. Les comento cual es mi duda para saber si me pueden dar una mano. (disculpen si es que existe un hilo que hable acerca de esto pero busqué y no lo encontré).
Antes que nada les comento cual es el escenario de trabajo para que uds. tengan conocimientos, que creo, necesarios para que puedan ayudarme. Actualemente, somos un grupo de trabajo, 5 programadores (c/u con su pc) y un servidor (Windows 2000 server). En cada pc todos programamos con delphi 7. Para acelerar el proceso de programación tenemos un conjunto de clases visuales (tipo un framework o una jerarquia de clases), las cuales son utilizadas en los distintos proyectos, heredando de las mismas. Estas clases estan en un directorio compartido del servidor. POr otro lado, todos los paquetes que se utilizan son instalados tambien en un directorio del server. Los paquetes son instalados de la siguiente manera: - En un dir. BPL se colocan todos los bpl de los paq. instalados, de manera, que desde cada Pc si uno desea un paq. accede a dicho directorio y agrega el bpl. - En otro dir guardamos los source y en otro los dcu, etc. Obviamente todos los paths correctamente seteados. POr ultimo, cabe aclarar que todos los proyectos estan en el servidor, no locales a la pc en que se programa. Hasta aqui todo bien y nos resulta muy flexible y utili trabajar asi, el problema es el siguiente: Cuando un proyecto se va ampliando en funciones, con forms, componentes, y todo lo que se puede agregar , la compilación se vuelve muy lenta (hasta 4 o 5 minutos). Lo raro es que, (tambien tenemos delphi 5 instalado) y en delphi 5 no es lento la compilación. Hemos probado la compilación dinámica, utilizando la opción "Build with runtime packages" en Project -> opctions y tampoco da resultado. Tambien, probamos dejar solo lo necesario y no hay caso. Bueno, espero que se entienda mas o menos cual es el escenario y si alguien tiene alguna solución se los agradeceré. POr otro lado, si alguien trabaja de alguna de otra forma (compartiendo clases, componentes, etc) y funciona ok estoy abierto a escurcharlas. Saludos a todos, y muchas gracias. Jorge. |
#2
|
||||
|
||||
En primer lugar, creo que el cuello de botella es la red. Es de cuanto 10 MB? 100? Delphi trastea mucho con los archivos..
La demara es en un BUILD o un COMPILE? Si es en el Build, consideren hacer un batch que haga el BUILD por linea de comandos, fuera del IDE.... Si el framework es ESTABLE y no se toca, no pongan los .pas de este en la lista de directorios de los proyectos. Para que estar recompilandolos? Solo necesitan los .dcu... Es posible que esten recompilando las fuentes de Delphi... ya chequearon? Sin embargo, la solucion que tienen no me parece la mejor. Porque no usan un control de codigo fuente donde puedan tener un repositorio central pero un trabajo distribuido? Ya escribi algo en http://www.clubdelphi.com/foros/show...4589#post84589 En conclusion, un desarrollador independiente deberia usar un esquema de control de codigo fuente. En un equipo, es un requerimiento ineludible!
__________________
El malabarista. |
#3
|
||||
|
||||
Yo he trabajado así durante haños, con la salvedad que tanto los proyectos como las DCU se compilan localmente en el disco. Lo que se logra con esto, es que solo lea de la red, aquellas units modificadas a la hora de compilar.
Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#4
|
||||
|
||||
Hola a todos.
Bueno, por la experiencia que tengo me sumo a los comentarios de mamcx y Federico. Creo que el problema está en la red y que para estos escenarios de trabajo lo mejor es disponer de un software control de versiones, que permita al equipo estar sincronizado en cuanto a modificaciones se refiere. Esto implica que la compilación se hace local, con lo cual los tiempos baja considerablemente de los 4 o 5 minutos que mencionabas. En mi caso una applicacion de bastente peso la compila en aproximadamente 10/12 segundos. De todas formas comprueba que esten desactivadas la opciones: -Platform Symbol -Platform Unit -Unsafe Type -Unsafe Code -Unsafe typecast en Project -> Options -> Compiler Messages Siempre aceleraran el proceso. Saludos |
#5
|
|||
|
|||
Gracias a todos por responder a mi inquietud.
Con respecto a las alternativas que mencionaron, tengo algunas dudas acerca de su implementación. Por ejemplo con respecto a la utilización de un programa de Control de versiones (hemos utilizado el FreeVCS), por lo que he visto tienen todo centralizado en un lugar y posteriormente si deseo trabajar en otra pc se realiza una copia local en dicha pc. La duda que tengo es si se copia todo, por ejemplo, en nuestro caso si tenemos todo en el servidor: framework de clases visuales, bpl y demas, todo esto es copiado localmente a la pc de desarrollo, Esto es así?, con lo cual debe ser el programa de control de versiones el encargado de la sincronización de los cambios. Agradezco nuevamente a uds. sus comentarios y espero poder dar una solución a esta situación, ya que soy de la idea, que si uno desea contruir aplicaciones robustas, mantenibles y flexibles se deben seguir ciertas "pautas" o reglas (del estilo de las que mamcx expuso en su link - estoy de acuerdo en muchas ellas -) y mas aún cuando se trabaja dentro de un grupo de desarrollo. El punto que deseamos mejorar es juntamente el del hilo en custion, es decir, como relizar un trabajo organizado y "eficiente" dentro de un grupo de trabajo. Saludos a todos. |
#6
|
||||
|
||||
Hola.
El FreeVCS gestiona y sincroniza todo los archivos que componen un Projecto Delphi. Todo lo que no este dentro del projecto pues... no estoy seguro pero creo que no. Saludos |
|
|
|