我有一個加載時間過長的winform。該表格有很多控件,我想看看每個控件需要多少時間來加載。 如果它是一個網絡應用程序,我會打開跟蹤,但我找不到類似的WinForms。
有什麼想法?
謝謝。是否有一個相當於WinForms中的trace = true?
3
A
回答
0
可能是一個相關的問題可以幫助你跟蹤/中的WinForms登錄: How do I create an automatic UI event trace in winforms?
您也可以看看這個:Writing trace information in a windows form app
希望它能幫助!
0
我的猜測是有一些需要最長的時間來加載,因爲他們必須連接到遠程服務器。
嘗試禁用最有可能的嫌疑人,看看是否改善你的表現。這應該。 然後,每次啓用一個遙控器,查看是否明顯顯示哪個控制器正在放慢一切。
它可能不是。可能有6個控件每個需要5秒加載。我懷疑你需要精確的跟蹤信息,只是瞭解哪些控件是最糟糕的性能殺手。
2
這實際上是很慢的加載是不太可能的。無論您創建了多少個控件,構造函數通常都很快。如果您有Load事件處理程序,則可以輕鬆測量Stopwatch類或分析器需要多長時間。
不,對於很多控件,表單感知緩慢的最常見原因很簡單,就是需要很長時間才能控制paint。這很快發生,你開始注意到50個控件。這與Microsoft Outlook使用的子窗口大小相同。每個控件繪製自己所花費的時間是相當可預測的。它的外觀越複雜,需要的時間越長。你可以做一個簡單的測試,觀察你最小化需要多長時間,然後恢復表單。如果速度太慢,那麼繪畫就是瓶頸。
沒有什麼可以做到這一點神奇更快。除了只使用較少的控制。例如,標籤對於它所做的工作來說特別昂貴,您可以用OnPaint方法中的一行代碼替換它。像Telerik這樣的組件供應商專門銷售不使用窗口的控件。
相關問題
- 1. 是否有一個Monoid相當於Bifunctor?
- 2. 是否有一個相當於c#中array_merge的函數
- 3. 是否有一個JavaScript中的Vector Java類相當於?
- 4. 是否有相當於c#中的typedef?
- 5. 是否有一個WPF相當於一個DOM瀏覽器?
- 6. 是否有一個相當於System.Net.Sockets.UdpClient的dot42?
- 7. lua中是否有相當於Boost.Program_options?
- 8. 在GSL中是否有`numpy.minimum`相當於?
- 9. 是否有一個相當於select()的「errorfds」集合的kqueue()/ kevent()?
- 10. 是否有一個相當於java的OnReceive Function的Delphi?
- 11. 是否有一個相當於python的optparse.OptionParser的perl模塊?
- 12. 是否有一個相當於什麼XUL是爲Mozilla爲Chrome,?
- 13. 是否有一個相當於linux命令「perf stat」的窗口?
- 14. 是否有一個相當於CSS背景圖像的前景?
- 15. 是否有一個相當於bash的<()sh
- 16. 是否有一個相當於php glob函數的VBscript
- 17. 是否有一個相當於Bootstrap的jTable組件?
- 18. 是否有一個相當於PHP的loadXML()?
- 19. 是否有一個相當於`perl -pi -e`的Python?
- 20. 是否有一個相當於linux/freebsd hwpmc的端口?
- 21. 是否有一個相當於ASP.NET的django-admin功能?
- 22. 是否有一個相當於Files.newDirectoryStream資源類路徑上的
- 23. 是否有一個相當於「SHOW TABLES」的apache豬?
- 24. 是否有一個相當於JAVA pack()的WIN32 API?
- 25. 是否有一個相當於Python對象的__name__
- 26. 伊德里斯是否有一個相當於阿格達的↔
- 27. 是否有一個相當於PHP-FPM的Python?
- 28. 是否有一個相當於sqlite3_limit的PHP?
- 29. 是否有一個相當於libevent的Java?
- 30. 是否有一個相當於javascript的javascript a = b && b.c || d