在我的程序中,主窗体的创建很慢:我已经确定它在调用窗体的OnCreate
事件之前会挂起大约两秒钟。所以我怀疑在创建组件时会发生这种情况。
由于这个表单有几个框架,我想知道是否有一种方法来“分析”组件创建,以便了解我可以改进的地方。我怀疑延迟来自于打开一个当时不应该打开的数据库表(相反,稍后,在进行了一些过滤之后)。
如果有一种方法可以在每个组件创建之前/之后触发事件,我可以自己进行性能分析(例如使用codesite)。
或者也许可以手动创建组件?
答案 0 :(得分:3)
这是一种快速而肮脏的方法来确定延迟的位置:
Classes
单位源代码的副本,并将其放入项目的源文件夹中。这将确保将此单元编译到您的程序中,而不是Delphi提供的程序。TComponent
构造函数中的代码。所有流组件在创建期间都会通过此处。添加代码以记录类名,例如例如,使用CodeSite。如果您有许多组件,那么只知道该课程可能不会缩小范围。您可以将日志代码注入TComponent.SetName
,而不是让您记录组件的名称。但是,基本的想法很简单,你应该能够将它应用到你的设置中,以便找到你需要的信息。