【发布时间】:2011-02-24 07:47:35
【问题描述】:
我们有一个 UI 非常繁重的应用程序。最近我们的客户开始抱怨应用程序启动性能。 (以前我们的控件/表单在显示某种带有“开始”消息的初始屏幕时被初始化)。
我进行了一项研究,发现控件的 InitializeComponent()(由 VS 设计器生成)方法调用对于复杂的控件最多可能需要 ~0.4-0.5 秒。并且有很多这样的控件,因此我得到了大约 10-15 秒的应用程序启动时间。那里没有什么可以真正繁重的,只有控件初始化(例如,不同的工具条、工具条按钮、菜单条初始化、不同文本的设置等)。
在这种情况下,有没有办法提高控件初始化的性能?也许是某种缓存或类似的东西(所以我们的应用程序只会在第一次加载时缓慢启动)?
附:我们正在使用 .NET 2.0
提前致谢。
【问题讨论】:
-
复杂的winform控件真的很慢。在需要时初始化它们(通过将它们放置在按需加载的单独面板中)或在“显示”事件中初始化它们,以便用户看到“某些东西”。
-
我们也遇到过类似的问题。我建议使用“shell”启动应用程序,并将不同的功能分支到不同的模块/用户控件/子表单中。这样,如果用户不需要模块,他就不会在启动时受到惩罚。
标签: c# .net winforms performance