パフォーマンス テストのために、フォームが 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 秒) を費やした構築であることに気付きました。この時間はどこに費やされているのだろうか。参照オブジェクトとして、同様の構造を持つがコードやデータモジュール接続のないモック フォームも作成し、その作成時間を測定します。