当前位置: 首页 > news >正文

【UE·优化篇】使用FramePro优化UI性能

FramePro在公司项目组里用挺久了,搜了下网上资料几乎没有,所以这次心血来潮写一下。

FramePro介绍

FramePro是一个第三方性能分析工具,可用于C++开发的任何项目里,UE也不例外。
在这里插入图片描述

对比UE自带的Insight有以下优缺点:

共同点

  • 帧率,每帧耗时,峰值曲线,函数调用性能等都有
  • 支持分析编辑器下运行游戏,以及打包在PC和手机端的版本
  • 支持录制数据,回放分析

优点

  • 支持实时连接看性能数据,对比UE的需要先录制数据再分析更方便
  • 可以看到每个CPU核心的消耗情况
  • 完全独立UE的第三方软件,使用简单,不需要开UE,对于策划、测试等非程序岗位的人很友好
  • 支持长时间一边跑一边分析,且保存后的数据文件比UE小很多(只有UE的1/3左右)

缺点

  • 贵,正版要2000块人民币。(但是国内有绿色版你们懂的,我会放评论区
  • 显示的函数内容比UE的少一点,需要自己手动stat埋点增加
  • 只有CPU耗时相关数据,其他像内存、GC、GPU方面不如UE的全面

对比UE4的Profile:

  • Profile虽然也有实时连接,但是UE5里已经删了Profile的功能。另外FramePro的函数占用性能也比Profile更直观。

简单来说,FramePro是一个CPU耗时专精的性能分析软件,比UE自带的分析工具更轻量。在不知道性能哪里有瓶颈的情况下,适合一边开FramePro一边跑游戏,能看到清晰的帧率变化情况,比UE直接开show fps更直观。在确定哪个地方容易发生卡顿以后,再开UE的Insight录制数据逐帧分析瓶颈。


FramePro使用

使用FramePro需要把FramePro安装以后的FramePro.h和FramePro.cpp文件放到工程里面。UE源码已经自带这两个代码。
在这里插入图片描述
我们需要把FramePro.h里的FRAMEPRO_ENABLED的宏设为1。
在这里插入图片描述
运行游戏,输入命令行:

  • Stat NamedEventes(不敲这一步会有很多函数显示不了)
  • framepro.enable 1
    在这里插入图片描述
    点击Framepro界面左上角的Connect,就会自动连接正在运行中的游戏。
    点击保存可以把记录的数据保存成文件读取:
    在这里插入图片描述

FramePro实战

接下来以我最近优化的一个UI性能点为实例(部分信息敏感会打码 ),讲一下怎么使用FramePro来优化性能。
随便点开一帧的数据,能看到总耗时20ms。其中Slate里面的Tick占了8ms多。这个测的是玩家在大地图里原地站着什么都没有做的情况,这个cpu耗时是有点高的。
在这里插入图片描述
在这里插入图片描述
展开来看,其中有一个叫Layout的界面占了1ms的耗时。
其中有相当一部分是TickWidget的消耗:
在这里插入图片描述
有看到LuaFunction的消耗:
在这里插入图片描述
推测在Lua里面写了大量Tick的逻辑,因为slua是可以直接实现C++的BlueprintImplementableEvent的UFunction的。
在这里插入图片描述

为了验证这个Tick影响大不大,修改源码,写了一个命令去控制这个Tick是否调用:
在这里插入图片描述
在这里插入图片描述
关了以后再看Slate::Tick有6.多ms左右:
在这里插入图片描述
说明Lua里面实现这个Tick至少有1.多ms的优化空间。
搜了一下确实非常多:
在这里插入图片描述
知道瓶颈在哪以后,剩下怎么优化就很简单了。这里举几个典型案例:

  • 减少频繁C++调用:
    • 比如这里调用Pawn的C++方法
    • 还有在tick里创建Vector
      在这里插入图片描述
      在这里插入图片描述
  • 用计时器Timer代替Tick
    • 其实很多逻辑都不用每帧Tick,只是一时图方便写Tick。完全可以用计时器替代。
      在这里插入图片描述
  • 写C++的Tick里代替Lua里的Tick
    • 如果一定要写Tick。比如说小地图里的玩家位置,如果不是每帧更新的话那会很奇怪。这种没办法的情况只能写C++里了

最后改完再测下性能:
耗时降到了7ms,大概省了1ms多的耗时。
在这里插入图片描述
当然UI这块还有很多可以优化的地方,但是这就不是本文的重点了,本文重点讲下FramePro以及结合一个简单实战案例教会大家使用。


总的来说Framepro还是挺不错的,弥补了UE5不能用Profile实时连接的缺憾。而且使用方便分析直观也不咋影响电脑的性能,可以看到一直开着的情况下,内存占用100mb,比一众软件都低得多。
在这里插入图片描述

链接: https://pan.baidu.com/s/1-wk_nsP2IkivcIE5xjoUCg 提取码: yj3u

http://www.dtcms.com/a/573915.html

相关文章:

  • 网站建设个人工作室seo在线培训机构
  • 免费做网站怎么做网站吗上海做网站比较好的
  • 【观察者模式】深入 Spring 事件驱动模型:从入门到微服务整合实战
  • 大连永锐网站哪家做的推荐常州网站建设
  • React的设计理念与核心特性
  • 单片机中NRST引脚复用为GPIO
  • React 13
  • 【功能安全】AEB功能HARA分析
  • 佛山做外贸网站特色中企动力做过的网站
  • 重庆网站建设冒号做网站优化给业务员提成
  • 影刀RPA完全指南:从零入门到自动化高手(2/10)
  • 学习笔记:Jquery getJSON方法分析(一)
  • Linux--进程池
  • 洞头区网站建设收费网站模板制作步骤
  • wordpress直接自己网站怎么做优化
  • 【开题答辩全过程】以 分布式菌菇销售系统为例,包含答辩的问题和答案
  • ui设计网站建设是什么意思深圳做网站制作
  • Canal:让 MySQL 数据同步像呼吸一样自然
  • PE工具开发实战:非正向与安全解析
  • 进一步加强网站建设管理郑州app拉新项目
  • 徐州百度推广总代理台州专业关键词优化
  • C++ 中模板元编程与 SFINAE 机制
  • 【实用运维工具】一键完成Oracle数据库的健康巡检,生成WORD报告
  • ICLR 2025 Spotlight | 打破AI“黑箱”!最新IIS评分框架:揭示模型性能与可解释性的共生关系
  • Java实现国密算法 SM2 /SM3 /SM4(基于 BouncyCastle)
  • 文件网站建设高新公司网站建设哪家好
  • Zabbix企业级分布式监控系统(上)
  • 深度解析:接口性能优化实战指南
  • 站点创建成功html代码hr表示
  • 一、Netty-高并发IO底层原理(5种主要的IO模型)