Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Aplicacion demora demasiado en iniciar (https://www.clubdelphi.com/foros/showthread.php?t=72595)

moneiro 28-02-2011 23:47:20

Aplicacion demora demasiado en iniciar
 
Hola amigos de ClubDelphi.

He desarrollado una aplicacion, que hace unos dias esta tardando demasiado en iniciar.

Cuenta con varias consultas/inserciones a diferente base de datos.
La aplicacion utiliza SQL server 2008.

Cuando, a traves del Administrador de tareas, le cambio la prioridad al proceso arranco de manera rápida.

Mi duda es la siguiente:
*que componentes pueden hacer demorar el inicio de mi aplicacion?
*como se puede cambiar la prioridad de un proceso de forma "automatica", sin intervencion del usuario.

Saludos!!

duilioisola 01-03-2011 00:22:49

Lo que tienes que ver es cuál es el proceso que tarda.
Supongo que al iniciar, abres la base de datos, luego abres varias tablas y luego generas alguna consulta y finalmente pides usuario y contraseña (o lo que sea que haga tu aplicación).

En estos casos, lo que yo hago es pasar con F8 por cada paso y ver cual es el que tarda.

Otra forma, cuando tengo que hacerlo con los datos del cliente y no me puedo traer su base es crear un log.

Yo lo hago más o menos así:
Código Delphi [-]
var
  ts : TStrings;
begin
  {Inicio del programa. Esta es la parte que tarda}
  ts := TStringList.Create;
  ts.Add('Inicio: ' + DateTimeToStr(Now));
  AbreDataBase;
  ts.Add('AbreDataBase: ' + DateTimeToStr(Now));
  AbreTabla1;
  ts.Add('AbreTabla1: ' + DateTimeToStr(Now));
  AbreTabla2;
  ts.Add('AbreTabla2: ' + DateTimeToStr(Now));
  AbreTabla3;
  ts.Add('AbreTabla3: ' + DateTimeToStr(Now));
  GeneraEntrada;
  ts.Add('GeneraEntrada: ' + DateTimeToStr(Now));
  ts.SaveToFile('tiempos.log');
  ts.Free;
  {A partir de aqui todo corre correctamente}
  ...
end;

Me ha sucedido que mis programas, a medida que se utilizan, las aperturas son más lentas. La solución es abrir solo lo necesario para iniciar la aplicación y abrir los datos necesarios para cada Form cuando se necesiten.

moneiro 01-03-2011 21:10:09

Gracias por la respuesta.
De ayer a hoy he hecho lo que me recomendaste y el problema lo encontré en otra parte.

Paso a contarte:
lo que en realidad tarda demasiado es la creacion 2 formularios en particular (ambos son form que contienen elementos de Qreport), que al comentarlos mi aplicacion arranca normalmente.

Alguna idea acerca de porque puede ser que demore en creaar los formularios de reportes??

Saludos!

pacopenin 02-03-2011 14:18:59

Hola.

En un proyecto de hace años, cuando usaba QReport me ocurría algo parecido y era que los formularios que contenían los Report se creaban al iniciar la aplicación (Auto-create) y por lo tanto, se activaban las Querys correspondientes que eran las que tardaban bastante. Quité esos formularios de Auto-create y ya fué bien.
No sé si será tu caso.

Saludos,


La franja horaria es GMT +2. Ahora son las 19:00:32.

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