使用UE4/UE5的stat监控Lua的性能

2

主题

8

帖子

10

积分

新手上路

Rank: 1

积分
10
发表于 2023-4-6 20:35:37 | 显示全部楼层
做复杂了,还需要改lua源码,有开源的profiler工具,直接hook函数调用就好了
回复

举报 使用道具

1

主题

2

帖子

3

积分

新手上路

Rank: 1

积分
3
发表于 2023-4-6 20:35:55 | 显示全部楼层
没改源码啊
回复

举报 使用道具

6

主题

8

帖子

19

积分

新手上路

Rank: 1

积分
19
发表于 2023-4-6 20:36:55 | 显示全部楼层
开源的很多,这个是给UE4的stat用的
回复

举报 使用道具

3

主题

4

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2023-4-6 20:37:33 | 显示全部楼层
https://github.com/wolfpld/tracy 试试这个,不用去手动插入stat采样点,快速定位性能热点很不错
回复

举报 使用道具

2

主题

6

帖子

11

积分

新手上路

Rank: 1

积分
11
发表于 2023-4-6 20:38:02 | 显示全部楼层
[赞]看着不错,我试试看,看UE4性能有很多工具的,比如simpleperf,framepro等都类似,还是具体解释一下,这个文章本身目的不是讲怎么具体在UE4去测性能,想做这个手段非常多,而是讲怎样运行时动态创建stat id这件事,让stat可以不受限于C++静态编译
回复

举报 使用道具

2

主题

5

帖子

11

积分

新手上路

Rank: 1

积分
11
发表于 2023-4-6 20:38:28 | 显示全部楼层
我们项目之前也是用的专门的luaprofiler,后来也统一改造成了接入ue的stat了。可以C++和lua的性能一起分析,对于性能组的分析流程会简洁很多,同时数据格式也是统一的。更重要的是,项目大了之后,经常会遇到测试组测试时发现性能有问题,直接导出stat数据发给性能组,就能直接分析,而不需要性能组再去复现,整体效率提升很多。
回复

举报 使用道具

1

主题

6

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2023-4-6 20:39:06 | 显示全部楼层
stop时index取自pop,如果多处添加到话,start跟stop是对应的吗?
回复

举报 使用道具

0

主题

5

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2023-4-6 20:39:38 | 显示全部楼层
看了下git的代码,能直接继承到FCycleCounter的话文件应该是丢到Core下面了。可以考虑抄下FCycleCounter的实现就能丢到插件里了,毕竟能不动引擎目录就不动嘛。另外没有处理lua exception,要是lua报错了可能会堆栈溢出。
顺便就前面几个回复交流一下:
这个纯c-binding只有几次lua栈操作的开销,不用担心性能问题,实在不放心就shipping包拿空调用override一下,再不行跑个脚本把调用全删了。
start/stop肯定是对应的,当然我没试过协程的情况,项目也什么需求是必须协程才能解决的
做lua端的Stat支持主要目的还是为了整合工作流,项目工具链越少越容易把控,把UE自带的工具用熟练已经能解决项目大部分问题了。
回复

举报 使用道具

0

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2023-4-6 20:39:48 | 显示全部楼层
对,异常这些都没管,这个我自己临时写的给读者分享和参考的,实际使用可以根据自己情况随意修改[飙泪笑]
回复

举报 使用道具

0

主题

6

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 21 小时前 | 显示全部楼层
不错 支持一个了
回复

举报 使用道具

您需要登录后才可以回帖 登录 | 立即注册
快速回复 返回顶部 返回列表