我的应用程序有几个大型窗体,包含大量图像,大大增加了构建的可执行文件的大小。随着时间的推移,初创公司的表现似乎变得呆滞,似乎并没有好转。WinForms性能问题
如果我把除了主窗体以外的所有窗体都放在单独的dll中,它是否会减轻启动过程中对应用程序施加的一些压力?
我会自己测试一下,但是我有很多表格,除非有人能证实这样的行为证明是有用的,我不想这样做。
我的应用程序有几个大型窗体,包含大量图像,大大增加了构建的可执行文件的大小。随着时间的推移,初创公司的表现似乎变得呆滞,似乎并没有好转。WinForms性能问题
如果我把除了主窗体以外的所有窗体都放在单独的dll中,它是否会减轻启动过程中对应用程序施加的一些压力?
我会自己测试一下,但是我有很多表格,除非有人能证实这样的行为证明是有用的,我不想这样做。
许多因素都会影响启动性能。你有没有使用任何工具来证明它是图像?
一开始,经过这些提示: http://devcomponents.com/blog/?p=361
,并考虑使用多线程在后台加载更大的物体。
我想知道你是否使用MEF和Lazy加载,然后当你真的需要模块(Form)通过调用.Value实例化。
有一对夫妇的事情,我做含有大量的表单应用程序:
图像是否实际包含在.dll中?如果是这样,我实际上将我的图像放入与用户界面分开的.dll文件中。
鉴于图像是用于工具栏的,我不会将它们作为资源分割出来。我仍然会坚持我的建议,将其分成多个.dll文件。
正如别人所说,简介,不要猜测。
不只是任何profiler会做。 Here's a user(除我之外)谁发现了他自己的random pausing。 你说“激烈”的方法都是在你没有源代码的dll中 - 这是典型的和正常的。 你需要知道的是你的代码中的哪些语句要求花费时间,并且它们不能仅限于CPU专用时间。 大多数配置文件不会告诉你这一点,但随机暂停。
感谢您的链接,非常有用!我还没有真正使用过任何工具,但我认为这只是将应用程序加载到内存中的应用程序正在陷入困境。而且我已经对我在启动时执行的所有功能进行了线程化。它有帮助,但不明显。 – Eaton 2010-12-16 03:12:30
标记为答案 - 非常有帮助的链接。 – Eaton 2010-12-17 23:49:27