项目中Warmup耗时高该如何操作处理

1)项目中Warmup耗时高该如何操作处理
2)如何在卸载资源后Untracked和Other的内存都回收
3)总Triangles的值是否包含了通过GPU Instancing画的三角形
4)有没有用Lua来修复虚幻引擎中对C++代码进行插桩Hook的方案


这是第432篇UWA技术知识分享的推送,精选了UWA社区的热门话题,涵盖了UWA问答、社区帖子等技术知识点,助力大家更全面地掌握和学习。

Rendering

Q:项目中Warmup的处理,是每次启动都必须操作吗?还是第一次进入游戏处理一次就好?

然后是不是也比较有必要给iOS分段Warmup?现在Warmup时间太久了。我们是Shader都在一个AssetBundle,做分段Warmup是不是需要拆AssetBundle?

A:第一次时间会比较长,有些信息会被保存在硬盘;第二次开始预热时间会降低,但还是必要的。

应该拆的是ShaderVariantCollection,Shader和SVC还是打在一个包,但是拆开的SVC可以分别在不同时机调用ShaderVariantCollection.WarmUp()。

感谢Faust@UWA问答社区提供了回答


Memory

Q:Untracked的内存增加了,导致总内存不变。再次加载这一块资源,Untracked内存又降低了,Other内存起来了内存还是不变。但是实际上是希望卸载资源后内存卸载的。

把手机放在后台一段时间后,再回到App,Untracked内存可能会降低到一个非常低的值,不清楚这个现象是Unity版本导致的还是Unity机制导致的,请问这合理吗?

A:一方面经验上认为Unity内存工具显示的Untracked内存量本身不可尽信;另一方面,引擎的资源卸载了一部分,但变化小或时间短,因而进程没有把内存还给系统而暂作预留,使得资源卸载和重新加载时没有导致总内存产生显著的变化,这种可能性是存在的。

感谢Faust@UWA问答社区提供了回答


Rendering

Q:请问Profiler-Rendering里统计的(Instancing)一行应该就是通过GPU Instancing画的物体的DrawCall和Triangles吧?下图中最上面这个总Triangles是否已经包含了通过GPU Instancing画的三角形呢?

A:测试开关对比了一下,是的,且已经被包含在总的里面了。

感谢Faust@UWA问答社区提供了回答


Script

Q:请问虚幻引擎中是否有成熟的方案,可以对C++代码进行插桩Hook,并在出现问题时通过Lua进行修复?

针对以上问题,有经验的朋友欢迎转至社区交流:
UWA问答 | 游戏开发者互动问答社区 | 侑虎科技

封面图来源于网络


今天的分享就到这里。生有涯而知无涯,在漫漫的开发周期中,我们遇到的问题只是冰山一角,UWA社区愿伴你同行,一起探索分享。欢迎更多的开发者加入UWA社区。

UWA官网:www.uwa4d.com
UWA社区:community.uwa4d.com
UWA学堂:edu.uwa4d.com

相关推荐
不是株17 小时前
AI Agent 记忆系统全解:从 Markdown、SQLite、向量检索到 GraphRAG
sqlite·知识图谱·agent·memory·graphrag·harness
大鹏的NLP博客2 天前
拆解 Agent Memory:从认知心理学映射到工业级工程落地
人工智能·agent·memory
Haooog3 天前
Agent 开发中的 Memory:State、短期记忆、长期记忆与 Memory Retrieval
java·agent·memory
长谷深风1113 天前
AI记忆会过期,会冲突,更需要治理
人工智能·ai·大模型·prompt·memory·aiagent
rockey6274 天前
C#脚本引擎之AScript与Z.Expressions.Eval对比
c#·.net·script·expression·动态脚本
rockey6276 天前
AScript之编译递归函数
c#·.net·script·动态脚本
海天一色y7 天前
构建智能Agent的记忆系统:三层记忆管理器设计
agent·memory
rockey62714 天前
C#脚本引擎之AScript与Jurassic、Jint对比
javascript·c#·.net·js·script·动态脚本
rockey62718 天前
C#脚本引擎之AScript与DynamicExpresso对比
c#·.net·script·动态脚本
rockey62721 天前
C#脚本引擎之AScript与Flee对比
c#·.net·script·eval·动态脚本