Phần khởi tạo của các đơn vị thường không phải là vấn đề tốc độ (trừ khi bạn có một số nội dung liên quan đến cơ sở dữ liệu trong đó).
Điều gì có thể chậm là tải TForm từ tài nguyên.
Luôn luôn có TForm được tạo khi đang di chuyển, chỉ khi cần thiết: - Chuyển đến menu "Dự án", sau đó chọn "Tùy chọn", sau đó chọn tab "Biểu mẫu". - Đặt tất cả các biểu mẫu không bắt buộc từ danh sách bên trái sang danh sách "có sẵn" phù hợp. - Tạo biểu mẫu theo yêu cầu, bằng một số mã.
Các đơn vị vẫn giữ nguyên:
type
TOneForm = class(TForm)
....
end;
var
OneForm: TOneForm;
Nhưng bạn có thể sử dụng đoạn mã sau để tạo ra các hình thức theo yêu cầu:
Thay vì bạn cựu
OneForm.ShowModal;
sử dụng loại mã
if OneForm=nil then
OneForm := TOneForm.Create(Application);
OneForm.ShowModal;
Bạn sẽ thấy tải ứng dụng nhanh hơn nhiều.
Lưu ý: Tôi chỉ đọc ra rằng vấn đề là trước khi tải biểu mẫu. Vì vậy, mẹo trên sẽ không hoạt động cho vấn đề cụ thể này. Tôi giữ câu trả lời vì nó có thể hữu ích cho người khác. Tôi sẽ đọc tốt hơn vào lần sau. :(
Trong mọi trường hợp, có nhiều mã chạy từ khởi tạo không phải là thiết kế tốt. Có vẻ như rất nhiều đối tượng hoặc biến toàn cục ... việc tái cấu trúc có thể có ý nghĩa ở đây ... :)
Nguồn
2011-01-20 13:54:05
Làm cách nào để kiểm tra xem dòng mã nào khiến WindowsCodec.dll được gọi? – LaBracca
Điều đó có thể khó khăn; những gì bạn có thể làm là trong cửa sổ Mô-đun Delphi, thiết lập một điểm ngắt trên tải của WindowsCodec.dll, sau đó xem ngăn xếp trong breakpoint. –
Cuối cùng tôi đã tải xuống bản dùng thử AQTime Profiler và tôi đã tìm thấy sự cố trong mã khởi tạo thư viện của bên thứ ba. – LaBracca