2009-10-06 58 views
0

我已經在C#中編寫了一個Winform應用程序。我如何檢查我的代碼的性能。我的意思是,如何檢查哪些表單引用在給定時間或事件處於活動狀態,以便我可以在不需要時將它們刪除(使它們可用於垃圾回收)。有沒有辦法使用VS 2005或任何免費工具來做到這一點。任何教程或指南都會有用。調試和提高效率C#winform代碼

[編輯]抱歉,如果我的問題很混亂。我不是在尋找專業的工具,而是更好地瞭解/理解我的代碼的工作和更高效的代碼。

感謝

回答

1

使代碼高效永遠是我的第二步。首先,我編寫代碼以便它可以工作。接下來,如果我對錶演不滿意,我會對其進行描述。事實是,大多數應用程序在第一次寫入後運行得足夠快。有時候,需要更好的性能。性能可以通過許多不同的方式獲得。這一切都取決於你的應用程序。我主要編寫LOB應用程序,所以我處理大量的IO到數據庫,服務和存儲。這些通話都非常昂貴,需要進行限制,因此它們是我第一個優化的區域。我通過延遲加載,急切加載,批量調用,減少頻繁調用等進行優化。我最近有一個winforms應用程序,它動態地創建了數百個控件,並且花了很長時間。這是我必須解決的另一個瓶頸。我使用分析器來衡量應用程序的性能。

使用免費Equatec profiler。它會顯示通話的時間和通話的次數。分析器提供了一個很好的報告和可視化顯示,可以深入調用堆棧。

0

KOBRA,

你要尋找的被稱爲內存分析器。恰巧有一個適用於.NET的付費版本,名字叫「.NET Memory Profiler」,我沒有廣泛使用它,但它應該回答你所問的問題。還有其他一些基本相同的東西,比如給你加載類型的實例計數,並且幫助你確定何時由於某種原因(例如,事件處理程序引用,靜態屬性等等) 。

希望這有助於

迪倫

1

Red Gate Performance Profiler

...它已經在這裏之前,無數次說。如果您懷疑性能問題,請分析您的應用程序。它會告訴你多長時間的通話,並指出你的代碼中的瓶頸。