Для тестов производительности мне нужен способ измерить время, необходимое для формы, чтобы загрузить ее определение из DFM. Все существующие формы наследуют пользовательский класс форм.
Для захвата текущего времени этому базовому классу нужны переопределенные методы как «точки расширения»:
- начало процесса десериализации
- после десериализации (может быть реализовано путем переопределения процедуры
Loaded
)
- момент непосредственно перед выполнением
OnFormCreate
события
Таким образом, журнал для TMyForm.Create(nil)
может выглядеть так:
- 00.000 instance created
- 00.010 before deserialization
- 01.823 after deserialization
- 02.340 before OnFormCreate
Какие методы TObject (или TComponent) лучше всего подходят? Возможно, есть другие точки расширения в процессе создания формы, пожалуйста, не стесняйтесь вносить предложения.
Справочная информация : для некоторых форм наших приложений, которые имеют очень базовую структуру (с некоторыми PageControls и QuantumGrids), я понял, что это не доступ к базе данных и другие вещи в OnFormShow, а конструкция, которая потребовала большую часть время (около 2 секунд), которое заставляет меня задуматься, где это время тратится. В качестве эталонного объекта я также создам фиктивную форму, которая имеет аналогичную структуру, но не имеет соединений с кодом или модулем данных, и измерю время ее создания.