2010-08-05 23 views
3

我有一個加載時間過長的winform。該表格有很多控件,我想看看每個控件需要多少時間來加載。 如果它是一個網絡應用程序,我會打開跟蹤,但我找不到類似的WinForms。
有什麼想法?
謝謝。是否有一個相當於WinForms中的trace = true?

回答

0

我的猜測是有一些需要最長的時間來加載,因爲他們必須連接到遠程服務器。

嘗試禁用最有可能的嫌疑人,看看是否改善你的表現。這應該。 然後,每次啓用一個遙控器,查看是否明顯顯示哪個控制器正在放慢一切。

它可能不是。可能有6個控件每個需要5秒加載。我懷疑你需要精確的跟蹤信息,只是瞭解哪些控件是最糟糕的性能殺手。

2

這實際上是很慢的加載是不太可能的。無論您創建了多少個控件,構造函數通常都很快。如果您有Load事件處理程序,則可以輕鬆測量Stopwatch類或分析器需要多長時間。

不,對於很多控件,表單感知緩慢的最常見原因很簡單,就是需要很長時間才能控制paint。這很快發生,你開始注意到50個控件。這與Microsoft Outlook使用的子窗口大小相同。每個控件繪製自己所花費的時間是相當可預測的。它的外觀越複雜,需要的時間越長。你可以做一個簡單的測試,觀察你最小化需要多長時間,然後恢復表單。如果速度太慢,那麼繪畫就是瓶頸。

沒有什麼可以做到這一點神奇更快。除了只使用較少的控制。例如,標籤對於它所做的工作來說特別昂貴,您可以用OnPaint方法中的一行代碼替換它。像Telerik這樣的組件供應商專門銷售不使用窗口的控件。

相關問題