2014年1月31日 星期五

自訂效能記錄

在UE的命令列中輸入stat xxx可以觀看對應系統的所花費的時間,優化時可以方便初步縮小範圍,找出可能的瓶頸。這個指令其實UE也有提供擴充的功能,本篇就來看一下如何自訂效能記錄。

自訂效能記錄需要用到以下三個巨集:

  • DECLARE_STATS_GROUP(group_name, group_id):宣告效能記錄群組,當使用stat指令時需要輸入的參數即為此群組名稱。開發者使用的群組ID要大於等於STATGROUP_LicenseeFirstStatGroup所對應的數值。
  • DECLARE_CYCLE_STAT(stat_name, stat_id, group_id):宣告隸屬某個群組中的單筆效能記錄。開發者使用的記錄ID要大於等於STAT_LicenseeFirstStat所對應的數值。
  • SCOPE_CYCLE_COUNTER(stat_id):定義一個效能記錄器。把它放在想要測量的函式內即可。它會記錄一個畫面中被呼叫的次數和執行所花的時間。

範例


以下程式碼示範如何自訂效能記錄:
enum
{
    STATGROUP_MySubsystem = STATGROUP_LicenseeFirstStatGroup,
};

enum
{
    STAT_MyStat = STAT_LicenseeFirstStat,
};

void UMyClass::MyFunction(...)
{
    SCOPE_CYCLE_COUNTER(STAT_MyStat);
...
}

在命令列輸入stat MySubsystem後即可看到效能記錄:

沒有留言:

張貼留言