La sección de inicialización de las unidades normalmente no es un problema de velocidad (a menos que tenga algunas cosas relacionadas con la base de datos allí).
Lo que podría ser lento es la carga de TForm desde los recursos.
Siempre es mejor tener el TForm creado sobre la marcha, solo cuando es necesario: - Vaya al menú "Proyecto", luego seleccione "Opciones", luego la pestaña "Formularios". - Coloque todos los formularios no obligatorios de la lista de la izquierda a la lista "disponible" de la derecha. - Crea los formularios bajo petición, por algún código.
La unidad sigue siendo el mismo:
type
TOneForm = class(TForm)
....
end;
var
OneForm: TOneForm;
pero se puede utilizar el siguiente código para crear el formulario de solicitud:
En lugar de su ex
OneForm.ShowModal;
utiliza este tipo de código
if OneForm=nil then
OneForm := TOneForm.Create(Application);
OneForm.ShowModal;
Encontrarás la carga de la aplicación mucho más rápido.
Nota: Acabo de leer que el problema estaba antes de la carga del formulario. Así que el truco anterior no funcionará para este problema en particular. Guardo la respuesta porque podría ser útil para otros. Leeré mejor la próxima vez. :(
En todos los casos, tener una gran cantidad de código se ejecute desde la inicialización no es un buen diseño. Suena como un montón de objetos o variables globales ... refactorización podría tener sentido aquí ... :)
¿Cómo puedo verificar qué línea de código hace que se llame a WindowsCodec.dll? – LaBracca
Eso puede ser difícil; lo que podría hacer es en la ventana de Delphi Modules, establecer un punto de interrupción en la carga de WindowsCodec.dll y luego observar la pila durante el punto de interrupción. –
Finalmente descargué la prueba de AQTime Profiler y encontré que el problema estaba en un código de inicialización de biblioteca de terceros. – LaBracca