0

我们有一个中型应用程序,它依赖于几个用户控件,即:

一个表格布局面板,具有 2x5 网格的用户控件,具有 3 级以上的继承。事实证明,我们在应用程序中遇到的一个大问题是启动时间(冷/热),我们遇到的最大问题之一是初始化这个用户控制网格。

从我们的时间报告来看,这个表单的初始化时间大约为 0.75 秒,减少这个时间将是一件大事

我的问题是:我该怎么做才能加快速度?每当我对类似复杂性的 InitializeComponents(所有窗口,.net 控件)运行时间检查时,结果有时会减少幅度(<10 毫秒)。

编辑)我想知道像标记我的最终课程密封或类似的事情是否会有所帮助。

编辑2)我已经深入研究了initializecomponent的时间,对于我当前的机器,主容器向它添加了10个组件(每件10毫秒)。这些组件中的每一个都添加了 3 个组件(每块 10 毫秒)。10x10 + 30x10 = 700 毫秒。除非我能提高将物品添加到容器中的速度,否则我认为我是 SOL。

4

2 回答 2

1

您是否在做任何依赖于控制启动中的外部因素的事情,例如访问网络或从数据库中提取?这些会增加应用程序的加载时间。

检查是否有任何循环,并尝试减少这些循环。

于 2009-12-07T16:57:05.160 回答
0

它可能相关也可能不相关,但我在使用 TableLayoutPanel 时遇到了类似的问题。问题在于绘图时间,正如分析器所揭示的那样。给我们带来问题的组合是内部控件的透明度和动态调整大小。我使用了一些 CreateParams 选项,但不幸的是,我最终不得不创建一个自定义布局引擎来让它真正唱歌。

无论如何,我现在肯定会下载探查器的免费试用版。性能问题通常出现在意想不到的位置。你可以花几个小时优化你认为是罪魁祸首的地方,结果却只能获得 0.0001 毫秒的性能差异。

于 2009-12-07T17:19:33.443 回答