3 回答

TA貢獻1797條經驗 獲得超6個贊
內置VS:
如果您具有團隊版,則可以使用Visual Studio分析器。
其他選項:
否則檢查此線程。
輕松創建自己的:
我個人使用基于Win32 API QueryPerformanceCounter的內部構建的。您可以在一百行或更少的代碼范圍內制作出易于使用的好東西。
該過程很簡單:在要配置的每個函數的頂部創建一個名為PROFILE_FUNC()的宏,該宏將添加到內部管理的統計信息中。然后有另一個名為PROFILE_DUMP()的宏,它將把輸出轉儲到文本文檔中。
PROFILE_FUNC()創建一個將使用RAII記錄直到銷毀該對象為止的時間的對象。此RAII對象的構造函數和析構函數都將調用QueryPerformanceCounter。您也可以將這些行留在代碼中,并通過#define PROFILING_ON

TA貢獻1846條經驗 獲得超7個贊
我建議一種非常簡單的方法(通過閱讀Mike Dunlavey關于SO的文章中學到了):
只是暫停程序。
進行幾次以獲得合理的樣本。如果某個特定功能占用了程序執行時間的一半,則很有可能會很快將其趕上行動。
如果將該功能的性能提高50%,那么您只需將整體執行時間縮短25%。而且,如果您發現甚至根本不需要它(我在使用這種方法的短時間內就發現了幾種此類情況),那么您只需將執行時間減少一半。
我必須承認,起初我對這種方法的有效性持相當懷疑的態度,但是在嘗試了幾周之后,我迷上了。

TA貢獻1890條經驗 獲得超9個贊
我一直使用AMD CodeAnalyst,我發現它非常易于使用并且給出了有趣的結果。我一直使用基于時間的配置文件,在該配置文件中,我發現它與我的應用程序的調試信息配合得很好,讓我找到了在過程,C ++指令和單個匯編指令級別花費的時間。
- 3 回答
- 0 關注
- 391 瀏覽
添加回答
舉報