技术分享连载(七)

简介:

运行性能

Q1:如下图,我们发现WaitingForJob这个函数消耗过高导致了卡顿,请问该卡顿是否由于渲染压力过大导致?

UWA Tech Doc

UWA Tech Doc

从图中看,该线程最后是在等待 Canvas.sortjob,而这是 UI 排序造成的开销(自Unity5.2版本开始,UGUI的部分计算已经移出了主线程)。
详情参考:http://blogs.unity3d.com/2015/09/07/making-the-ui-backend-faster/
因此理论上,这是 UI 的 canvas.sortjob 在指定的时间上没有完成,从而使得渲染线程等待,且最终导致主线程进行等待而造成的开销。


物理

Q2:UWA的报告中指出我们所使用的刚体超出了限制,我们经过测试发现只要使用CharacterController就会产生一个隐藏的刚体。而我们的角色移动是会使用CharacterController的。 为了避免这种情况,我们使用了CapsuleCollider来替代CharacterController接受点击,同时使用设置位置的方法来替代CharacterController的move。

1. 请问这样做是否有风险,并且是否可以降低我们在刚体和物理系统方面的开销呢?

2. 同期我们观测到了一个以前没有关注过的警告。其内容为:
Static Collider.Move (Expensive Delayed cost),请问该报错是否与我们的调整相关?能够导致该警告的原因可能会有哪些呢?

  1. 多数情况下,RigidBody + CapsuleCollider 与 CharacterController 相比会高效一些,因为 move 函数本身会进行较复杂的模拟运算;
  2. Static Collider.Move (Expensive Delayed cost) 意味着场景中有静态碰撞体(不带有RigidBody的Collider)发生了移动,而该操作在Unity 4.x版本的PhysX 中会在后续的模拟中产生较高的开销,但在 5.x 中理论上开销并不明显。如果要消除该问题,只需定位到发生位移的Collider并挂上RigidBody 组件,打开其is kinematic 选项即可。

图形渲染

Q3:我在shader里这么写的代码

o.texcoord1 = vec2(mod(v.texcoord.x,1.0),mod(v.texcoord.y,1.0));  

但是报错 undeclared identifier 'mod' at line 106 (on d3d11),请问是什么原因导致的呢?

报错表明mod在d3d11的Shader中是未定义的,如果开发团队无需在d3d11的平台上使用该 Shader,则可以添加以下预编译指令:

#pragma exclude_renderers d3d11

如果Shader依旧无法正常显示,那可能是因为在Editor中使用的是 DX11(可以从标题栏中看出)。 可以尝试修改DX9的参数 :Build Settings -> 点击 PC, Mac ... -> Player Settings(不需要点击 Switch Platform) -> 去掉 Auto Graphics API for Windows 的勾选,只保留 Direct3D9。同时,开发团队也可以直接使用 fmod 替换 mod,理论上 fmod 在各个平台都是支持的。


运行性能

Q4:我们在查看《六龙争霸测评精讲》时,看到下图中的GC的调用,请问该数值的是取决于明式调用System.GC.Collect()这个方法吗,还是指系统自动GC的频率?

UWA Tech Doc

手动触发System.GC.Collect和系统触发GC都属于GC的调用。除iOS平台外,Unity项目的GC调用是由Mono来控制的。其主要有两种方式,一种是系统每隔一段时间调用一次,一种则是当堆内存分配过大过快时被触发。
每次GC调用均会造成一定程度上的卡顿,从而降低项目运行的流畅度。因此UWA测评中专设了GC调用详细检测,欢迎开发者上传项目测试!

UWA Tech Doc

UWA Tech Doc


内存管理

Q5:我们的游戏玩了20分钟后,Texture2D的内存涨到了60MB多,并且重复的资源很多,是否由于没有卸载完全?还是打包AssetBundle依赖性的问题?用的是UGUI。

UWA Tech Doc

UWA Tech Doc

存在如下两个原因:
1、AB依赖关系打包存在问题,即atlas没有被依赖打包;
2、加载卸载的管理问题,可能是加载了一次后被一个Container索引了,这时又加载了一次同样的AssetBundle又被索引。如果这些一直没有释放,也会出现这种情况。


资源加载

Q6:如下图,我们在Unity 5.3.0中使用粒子系统时会触发一个ParticleSystem.Geometryjob的操作,并且该操作十分消耗CPU,请问怎么解决?

UWA Tech Doc

该问题已经确认是Bug,且已在Unity 5.3.2中修复。
开发者需要关注下自己的开发版本,5.3.2以前类似情况的项目可以参考一下。


资源加载

Q7:如下图:我在Profiler中看到这些没有引用的资源,他们是否还在内存中?

UWA Tech Doc

是的,凡是在Unity Profiler中能看到的资源就会保留在内存中。对于这种资源,在切换场景时调一下UnloadUnusedAssets API就可以释放。


近期活动

如何规避性能项目运行卡顿的问题?内存泄露、资源冗余如何定位?代码质量影响整体性能如何改良? 4月9日上海,我们延续性能优化的主题,搭配国民级手游《六龙争霸》性能数据深度剖析,使大家对游戏/VR应用的运行性能有更为深刻的认知。





原文出处:侑虎科技
转载请与作者联系,同时请务必标明文章原始出处和原文链接及本声明。

目录
相关文章
|
人工智能 并行计算 安全
10 大演讲主题、14 位技术大咖!龙蜥大讲堂 9 月直播预告硬核来袭
今天4点,一起探讨基于Intel TDX部署云上人工智能方案。
|
机器学习/深度学习 算法 大数据
第9天精彩打卡,精选5条,大家一起成长!
公众号发起了话题思考打卡赠书活动!为了更快学习大家打卡思考的内容,小猿每天都会把打卡优秀的话题思考的留言整理出来,让大家能在最短的时间内看到大家最精彩的留言 。以后公众号的次条推文,都是昨日打卡留言最优秀的5条精华 。PS:很多人不知道这帖才是大家思考的精华,都不经意间错过了,建议每天都点进来看看 。
145 1
|
监控 前端开发 架构师
文初技术分享【转】
假期重新把之前在新浪博客里面的文字梳理了下,搬到这里。
456 1
|
供应链
第7天精彩打卡,精选10条,大家一起成长!
公众号发起了话题思考打卡赠书活动!为了更快学习大家打卡思考的内容,小猿每天都会把打卡优秀的话题思考的留言整理出来,让大家能在最短的时间内看到大家最精彩的留言 。以后公众号的次条推文,都是昨日打卡留言最优秀的10条精华 。PS:很多人不知道这帖才是大家思考的精华,都不经意间错过了,建议每天都点进来看看 。
129 0
|
机器学习/深度学习
第8天精彩打卡,精选10条,大家一起成长!
公众号发起了话题思考打卡赠书活动!为了更快学习大家打卡思考的内容,小猿每天都会把打卡优秀的话题思考的留言整理出来,让大家能在最短的时间内看到大家最精彩的留言 。以后公众号的次条推文,都是昨日打卡留言最优秀的10条精华 。PS:很多人不知道这帖才是大家思考的精华,都不经意间错过了,建议每天都点进来看看 。
145 0
|
搜索推荐 程序员 双11
第6天精彩打卡,精选10条,大家一起成长!
公众号发起了话题思考打卡赠书活动!为了更快学习大家打卡思考的内容,小猿每天都会把打卡优秀的话题思考的留言整理出来,让大家能在最短的时间内看到大家最精彩的留言 。以后公众号的次条推文,都是昨日打卡留言最优秀的10条精华 。PS:很多人不知道这帖才是大家思考的精华,都不经意间错过了,建议每天都点进来看看 。
118 0
|
机器学习/深度学习 设计模式 JavaScript
2021阿里淘系工程师推荐书单
读书有点像机器学习从初始参数开始的局部最小化。 无论是数学、科学、技术、管理,还是历史、文学,读书的过程,就是根据一维的文字流,在立体的思维空间中重新建构。 这种建构的意义,将我们自身和世界连接了起来。 (阿里巴巴淘系技术部资深算法专家 乐田)
2021阿里淘系工程师推荐书单
|
机器学习/深度学习 人工智能 架构师
开发者社区精选直播合集(十)| 架构师成长之路
“我怎么知道自己适不适合做架构师”,“做架构师有什么潜在的坑”,“如何成为一个优秀的架构师”,如果你也存在类似的这些问题,就快来看大咖架构师们都是怎么成长起来的吧
开发者社区精选直播合集(十)| 架构师成长之路
|
机器学习/深度学习 人工智能 运维
开发者社区精选直播合集 | 架构师成长秘籍
架构师是一个十八般武艺都会的岗位,本专栏我们从思维方式、方法论,实践案例、大咖成长经验等角度整理视频合集,给你带来架构师成长营养餐,为你披荆斩棘、教你如何升级打怪,避开弯路成为一名优秀的架构师,快来看看收藏~
477 0
开发者社区精选直播合集 | 架构师成长秘籍
|
云安全 机器学习/深度学习 城市大脑
嘘!偷偷看下阿里技术大牛的私人书单
阿里妹拿到了贾扬清、吴翰清等大神的私人书单,到底大神们如何跨界学习,将知识收为己用?一起来感受!不要错过文末的送书福利哦!
10906 0
嘘!偷偷看下阿里技术大牛的私人书单