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 你的群组名称
进行监听
本文原创,不定时更新
可以随意转载到任何网站
~但是~ 转载也要按“基本法”
请注明原文出处和作者