【发布时间】:2010-03-14 12:27:57
【问题描述】:
对于性能测试,我需要一种方法来测量表单从 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 秒),这让我想知道这段时间都花在了哪里。作为参考对象,我还将构建一个具有类似结构但没有代码或数据模块连接的模拟表单,并测量其创建时间。
【问题讨论】:
-
我遇到了同样的问题并开始使用表单缓存,所以我至少避免了免费和重新创建。不回答您的问题,但可能会有所帮助...
标签: forms delphi serialization tpersistent