2010-02-01 59 views
3

我有一個使用visual studio 2005用C++編寫的應用程序。該應用程序有一定的性能問題。我想探索在哪裏。我需要深入瞭解應用程序大部分時間使用的類/方法/行。這可以通過WPA完成嗎?如果是的話,你能給我一個指向文檔的指針嗎?作爲性能分析器的Windows性能分析工具的使用情況

回答

4

不,WPT利用Windows事件,它只會幫助您診斷問題,當Windows是您的減速的原因。您當然不會爲您的代碼獲取任何診斷信息。你需要的是一個真正的分析器。好的花錢。查詢this thread獲取更多建議。

+0

謝謝。我迫切希望強制WPT閱讀我的符號表。 – danatel 2010-02-01 20:20:38

0

嘗試YourKit .net profiler。最近我嘗試了這個以及其他幾個,但是這是我設法與我的C++/CLI項目(混合使用託管代碼和非託管代碼)一起工作的唯一一個。

[編輯]糟糕;我將WPA閱讀爲WPF,並假設您想要剖析一些.net代碼。

3

找出不必要的花費時間的最簡單方法是stackshots,您可以通過Visual Studio中的「暫停」按鈕輕鬆獲得該方法。

你不需要測量;所有你需要做的就是在行爲中捕捉它。如果你發現它在兩個或更多的堆疊照片上做了某些事情,並且這是你可以避免的事情,那麼你將節省大量的時間。而且,你可以重複這個過程,因爲當你消除其他問題時,起初很小的問題會「起泡」。

+0

很好的建議,但不適合我的情況。該應用程序在Windows上運行良好(等待用戶輸入的時間爲99%),性能問題僅在嵌入式系統中可見,處理器速度較慢,而且我根本沒有調試器/分析器。好的分析器可以提供幫助,因爲它可以在0.5%到0.05%的時間間隔內進行。 – danatel 2010-02-01 20:25:23

+0

我在這種情況下做的是在每個UI驅動的處理周圍打包一個循環(10倍或100倍),以便「放大」正在發生的事情。這與減慢處理器的效果相同。調低代碼至最短時間,然後刪除循環。 – 2010-02-02 20:23:11