我的應用程序有幾個大型窗體,包含大量圖像,大大增加了構建的可執行文件的大小。隨着時間的推移,初創公司的表現似乎變得呆滯,似乎並沒有好轉。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