Hola Jose...<br>Nuevamente, gracias por los datos...voya ir probando paso a paso tus indicaciones y escribo los resultados, para ser usado en caso de consultas posteriores en el foro...<br><br><br>Muchísimas gracias...<br>
<br><br><br><div class="gmail_quote">El 30 de diciembre de 2010 10:32, José Mejuto <span dir="ltr"><<a href="mailto:joshyfun@gmail.com">joshyfun@gmail.com</a>></span> escribió:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
Hello Walter,<br>
<br>
Thursday, December 30, 2010, 1:34:30 PM, you wrote:<br>
<br>
W> ¿Que podrá ser...?, o al menos, ¿que tendria que tener en cuenta para que se<br>
W> acelere el arranque...?<br>
<br>
Pueden ser varias cosas, por ejemplo si comprimes el exe con UPX esto<br>
provoca que todo el exe se cargue en memoria y se ejecute todo junto<br>
inutilizando la carga selectiva de partes que hace windows.<br>
<br>
Otra causa puede ser un antivirus.<br>
<br>
Si no es una de estas lo más probable es que sucedan cosas en tu<br>
ejecutable de las que no eres consciente de que te están retrasando el<br>
lanzamiento. Una vez que lanzas un ejecutable de fpc/Lazarus suceden<br>
ciertas cosas por orden:<br>
<br>
1) Se carga el exe<br>
2) Se ejecutan todos los "initialization" de todas las units usadas en<br>
el programa. Lo que no estoy seguro es si se lanzan las que aparecen<br>
en el .lpr o todas.<br>
3) Se ejecuta el begin...end del .lpr<br>
<br>
Lo más probable es que tengas muchos forms y estés usando el formato<br>
de recursos lazarus "*.lfr". Si es así en el initialization se cargan<br>
e interpretan esos recursos lo cual consume cierto tiempo<br>
especialmente si los forms tienen muchas imágenes.<br>
<br>
Haz una copia de seguridad de todo y después en el .lpr elimina del<br>
uses todo lo que no necesites en el .lpr, esto es, normalmente sólo<br>
dejarías algo como:<br>
<br>
uses<br>
{$IFDEF UNIX}{$IFDEF UseCThreads}<br>
cthreads,<br>
{$ENDIF}{$ENDIF}<br>
Interfaces, // this includes the LCL widgetset<br>
Forms,<br>
ufrmprincipal, ufrmsplash<br>
{ you can add units after this };<br>
<br>
Resumiendo, dejar sólo lo básico y los forms que uses en el .lpr nada<br>
más.<br>
<br>
Ah! y en el .lpr pon algo como esto:<br>
<br>
var<br>
j: integer;<br>
<br>
begin<br>
Application.CreateForm(TfrmSplash,frmSplash);<br>
frmSplash.show;<br>
for j := 1 to 10 do<br>
begin<br>
Application.ProcessMessages;<br>
end;<br>
Application.CreateForm(TfrmPrincipal,frmPrincipal);<br>
Application.Run;<br>
end;<br>
<br>
Si así no cambia el tiempo de arranque (hasta que sale el splash<br>
screen) entonces sólo queda hacer una prueba, cambiar el .lpr por:<br>
<br>
begin<br>
Application.CreateForm(TfrmSplash,frmSplash);<br>
Application.Run;<br>
end;<br>
<br>
Y comparar los tiempos, si son similares el "problema" está en los<br>
initialization casi seguro. Si son bastante/muy diferentes entonces<br>
hay que cambiar el sistema de splash.<br>
<br>
Si no he entendido la pregunta pulsa ESC :)<br>
<font color="#888888"><br>
--<br>
</font><div><div></div><div class="h5">Best regards,<br>
José<br>
<br>
<br>
_______________________________________________<br>
Lazarus-es mailing list<br>
<a href="mailto:Lazarus-es@lists.lazarus.freepascal.org">Lazarus-es@lists.lazarus.freepascal.org</a><br>
<a href="http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es" target="_blank">http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Walter Mesón<br>