网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
01月25日漏签0天
ue4吧 关注:26,827贴子:82,711
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 1回复贴,共1页
<<返回ue4吧
>0< 加载中...

抛砖引玉,以技会友——重庆市区内大学的同学来

  • 只看楼主
  • 收藏

  • 回复
  • 杭州离天堂70码
  • 默默无闻
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
以下是去年我自己做的一个小测试。作为见面礼,证明我会使用ue4。
寻找重庆市区内的大学同学,计算机系、软工、数学系的同学最好。本人有意参与或帮助同学完成一些耗时不多的小功能或者项目。作为交换,希望同学可以提供一些学校的情况给我,或者带我蹭一些课程。
因为不熟悉当今学校氛围,不清楚同学们的社交方式,想起“有事问baidu”,于是跑到这里发一帖。
有兴趣者,可以留下qq,我会主动加你。
UE4算力测试
影响范围:
帧数、发热、内存占用
测试算法
1. 每秒向x方向走1米,超过100米,返回0点。
2. 检测当前场景所有的相同类型的Actor(UGameplayStatics::GetAllActorsOfClass),自己和检测到的对象作10米距离判断。在距离内的,保存到TArray列表里(m_RoundActor.Contains和m_RoundActor.Emplace)。不在的,将其从列表里踢出(m_RoundActor.Contains和m_RoundActor.Remove)。
该算法在Tick里面执行
测试方案工程制作方式
1. 制作3种Actor,分别是用c++完成所有逻辑的CppActor;用BP完成所有逻辑的BPActor;将BPActor复制出来,设置此BP为转换成原生代码的BpToCppActor。
2. 在页面上设置3个按钮,分别生成CppActor、BPActor、BpToCppActor。
3. 每次生成会清理掉之前的Actor,确保当前场景只有一种Actor在运行。
测试方式
1. 使用同一台设备
2. 满电再充10分钟以上
3. 拔电启动APP,生成固定数量(如225个)的一种Actor,运行固定时间(如10分钟或者20分钟)。
4. 观察FPS及发热情况。
5. 关闭程序,记录剩余电量。
6. 充电,重复流程,测试新的Actor。
结果预期
CppActor帧数最高,耗电最低,发热最轻
BPActor帧数低,耗电高,发热严重
BpToCppActor和CppActor一致。但是在到达某一较大数值时能够明显拉开性能差距。
测试结果
测试采用的数据:密度2,数量225,时长10,15,20分钟
1. CppActor:帧数60;耗电2%,3%,4%;无明显发热感受
2. BPActor:帧数10;耗电3%,4%,5%;有明显发热感受。游戏属于烫,本次测试是温。
3. BpToCppActor:帧数60;耗电2%,3%,4%;无明显发热感受
C++数据

BP数据

Bp转C++

结论
蓝图对CPU有过高的开销,会严重影响帧数。
其主要的影响在于蓝图节点的时间开销。以GetAllActorsOfClass作为参考,蓝图和c++每次tick都只调用一次,而代码的响应时间是8.7ms,蓝图是10.1,额外增加了1.4ms的开销。而蓝图节点越多,额外开销也越多,调用次数越多,额外开销也越多。两者相乘,额外开销将非常巨大。
CPU高负荷对于发热的影响并不明显。因此发热和CPU关系不大,但是我们可以通过蓝图转c++的方式来提高游戏帧率。


  • SillyDian
  • 闻名一方
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
蓝图怎么转c++?要重写吧。


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 1回复贴,共1页
<<返回ue4吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示