增量GC机制,会导致碎片化更严重吗

增量GC机制,会导致碎片化更严重吗

1)增量GC机制,会导致碎片化更严重吗
2)有没有关于Collider的性能差异分析经验
3)如何利用system.info返回的信息自动切换qualitylevel分级
4)如何设置Unity的两种网格数据压缩方式


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

UWA社区主页:community.uwa4d.com
UWA QQ群:793972859

Script

Q:请问增量GC这种频繁分配与释放的GC机制,会导致碎片化更严重吗?好像介绍增量GC的资料很少,所以有这种疑问。

A:对于碎片的产生,理论上增量GC和普通GC应该是没有什么区别的,都是标记-清除。增量GC只是把GC的工作分帧处理了,控制碎片的占用比例更关键的是要减少大块临时分配。

针对以上问题,有经验的朋友欢迎转至社区交流:
https://answer.uwa4d.com/question/684fe482682c7e5cd61bfaae


Physics

Q:请问有没有MeshCollider和BoxCollider或者SphereCollider具体性能差异的分析经验?

我们项目有比较多的UGC内容要用到很多Collider,之前项目的经验是基本不用Mesh,全是CapsuleCollider和BoxCollider。但是确实没有定量的性能差异的分析,正好有机会想重新评估下方案。

A:有条件的话在项目拟真环境下对比测试是最好的。

如图测试,仅供参考。200个球不停的碰撞,MeshCollider耗时均值为11.6ms,SphereCollider耗时均值为8.0ms,测试手机是OPPO R17。

针对以上问题,有经验的朋友欢迎转至社区交流:
https://answer.uwa4d.com/question/684fe3c7682c7e5cd61bfaad


Platform

Q1:请问如果要用system.info来自动切换qualitylevel分级,通常会建议用哪一个system.info的值来检查?

A:我们项目的做法是以GPU的算力为主,基于GPU型号来得到区分高中低档设备的基准,在此基础上结合了其它分档要素和项目要用的渲染效果或额外功能作为Feature,自己做一个评分表格来划分高中低档位。在后续维护中,市面上有新设备或项目要下沉市场,都是得不断更新这个表格里面的GPU型号的。

Q2:GPU型号具体是指哪一个? 算力是指GPU的最大频率对吗?

A:是graphicsDeviceName这一条。算力不能光看GPU频率,需要查看整体算力,一般可以直接参考GPU算力天梯网站给的分数,有条件的话辅以一些实验测试微调。

针对以上问题,有经验的朋友欢迎转至社区交流:
https://answer.uwa4d.com/question/684fbd9f682c7e5cd61bfaa9


Memory

Q:请问项目的Vertex Compression,以及模型的Mesh Compression分别怎么设置比较好?分别对存储、内存、性能以及效果是怎么影响的?

A:经测试,Mesh Compression开启可以减少打包AssetBundle的大小,但是不会改变Mesh在运行时的内存占用;Vertex Compression开启可以减少Mesh的运行时内存,但是如果对应的FBX开启了Mesh Compression,则Vertex Compression会无效。

针对以上问题,有经验的朋友欢迎转至社区交流:
https://answer.uwa4d.com/question/684fba3b3d306f3e9d594ef9

封面图来源于网络


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

UWA官网:www.uwa4d.com
UWA社区:community.uwa4d.com
UWA学堂:edu.uwa4d.com
官方技术QQ群:793972859