Ara you OK?
我看你是思想出现了偏差
哇!你认出了错别单词!恭喜你获得一次向我支付宝充值助我重返欧洲的机会!
这个页面管关不掉了,你自己看着办吧

UE4/UE5笔记-程序性能优化与调试相关笔记

 备忘笔记

Q.VS2022 UE4/UE5断点调试打包的程序或StandaloneGame模式模式下运行的程序:

note:首先确保打包时生成的*.pdb没被你删除.

运行UE Game程序或者Standalone Game

VS 调试->附加到进程(Ctrl+alt+p)找到运行中的Game实例,确认附加到进程,即可正常触发断点

ps:.上面的方式如果需要一运行程序立即需要断点可能不太适用,或许vsdebugger脚本是一种方案更好的,个人没研究过...

Release的话需要先修改项目下的BuildConfiguration.xml允许输出*.pdb

  <WindowsPlatform>
    <bUsePDBFiles>true</bUsePDBFiles>
    <bUseIncrementalLinking>true</bUseIncrementalLinking>
  </WindowsPlatform>

 

Q.UE4扩展Stat,埋点监听函数作用域内-调用所产生的性能消耗..

例如,会自动计数并计算调用平均值等..

 

说明:

如图

Collsion为群组

SceneQueryTotal为埋点项..

UE4支持通过预设宏快速的定义Stat群组:(当然可以往已经存在的群组添加新埋点,如图片里的STATGROUP_Collision群组)

DECLARE_STATS_GROUP: 自定义Stat群组
DECLARE_CYCLE_STAT :自定义埋点
SCOPE_CYCLE_COUNTER:监听函数性能消耗

Step 1:

定义Stat群组:

建议可放在PCH.h中 or *.module.h 中

DECLARE_STATS_GROUP(TEXT("Display Name"), STATGROUP_群组名称, STATCAT_Advanced);

 

Step 2:

定义埋点:

埋点所属的群组名称为Step 1定义的或已经存在的群组:如STATGROUP_Collision
建议放监听函数所在.cpp
DECLARE_CYCLE_STAT(TEXT("Display Name"), STAT_你的埋点名称, 埋点所属的群组名称); // 

Step 3:

使用埋点监听你所需要监听的函数的性能消耗:

void MyClass::MyFunc()
    {
        SCOPE_CYCLE_COUNTER(你的埋点名称); 

    // do something....
  }

Step 4:

Editor中Console 输入

Stat 你的群组名称

进行监听

 

posted @ 2020-06-09 19:01  林清  阅读(2895)  评论(0编辑  收藏  举报