美文网首页
XCode内存和UnityProfiler内存有较大差值

XCode内存和UnityProfiler内存有较大差值

作者: 侑虎科技UWA | 来源:发表于2022-11-15 15:56 被阅读0次

1)XCode内存和UnityProfiler内存有较大差值

2)Dynamic Bone插件和Job System的写法哪个好

3)编辑器中iOS平台SoftShadow无效

4)Unity 2021中阻止AssetPostprocessor代码改变导致相关资源Reimport


这是第313篇UWA技术知识分享的推送。今天我们继续为大家精选了若干和开发、优化相关的问题,建议阅读时间10分钟,认真读完必有收获。

UWA 问答社区:answer.uwa4d.com

Memory

Q:我们将XCode的内存和Unity Profiler的内存放在一起,发现二者存在600MB的差值,且GAP呈上涨趋势。

将已知的第三方插件(不到100MB)、IL2CPP Metadata Cache(100MB左右)等排除掉后,仍无法解释差值原因。

A:我们曾对Unity内存和XCode内存不同的问题做过一些测试。

这个是在Unity 2021里面看到的空场景测试,看起来是一样的。

另一个稍微复杂些的项目,也是一样的。

在2021里面,Unity会统计OS层的数据,和Unity Tracked差异的内存会作为UnTracked的记录;在2021之前的版本,Profiler是不会统计UnTracked这部分,在Memory Profiler里面可以看到,普通的Profiler里面是不会统计的。

所以总的来说,就是Unity和XCode统计的范畴不一样,可以参考这篇文章的说明:

https://toutiao.io/posts/j5m47yp/preview

对于UnTracked的部分,Unity官方文档也有说明:

感谢小ben@UWA问答社区提供了回答,欢迎大家转至社区交流:

https://answer.uwa4d.com/question/63687cdf9b19755f97a8aae5

Scripting

Q:Dynamic Bone插件出了多线程的版本,但是并不是使用Job System写的,请问下和Job System的写法哪个性能更好一些?

A:专门做过测试,Job System的性能更好一些。

使用坚果R2(骁龙865)进行的测试,测试的模型是8个骨骼,测试结果如下:

感谢Xuan@UWA问答社区提供了回答,欢迎大家转至社区交流:

https://answer.uwa4d.com/question/6371fc2b9b19755f97b1c669

Rendering

Q:Unity 2020.3.40版本SoftShadows在MAC电脑上iOS平台为什么不生效?

Unity都是新下载的,没有进行过任何修改。各个平台直接进行切换,什么东西都没有改动。

1.环境:MAC电脑;Unity:2020.3.40;平台:iOS;结果:软阴影没有效果

2.环境:MAC电脑;Unity:2020.3.40;平台:PC;结果:软阴影有效果

3.环境:Windows电脑;Unity:2020.3.40;平台:Android;结果:软阴影有效果

4.环境:Windows电脑;Unity:2020.3.40;平台:PC;结果:软阴影有效果

5.环境:Windows电脑;Unity:2020.3.40;平台:iOS;结果:软阴影有效果

6.环境:Windows电脑;Unity:2020.3.40;平台:Android;结果:软阴影有效果

A:经过测试,在真机上看Unity 2020的SoftShadow也是有效果的。以下测试是在编辑器中。

在Unity 2020上复现了问题,但是在2021上,iOS平台也能看到SoftShadow是起作用的。

下图是2020上iOS平台开启SoftShadow的图,可以看到_MainLightShadowOfset的数值都是0。

下图是2021上iOS平台开启SoftShadow的图,可以看到_MainLightShadowOfset的数值不是0。

差别主要来自于MainLightShadowCasterPass脚本,在2021的版本里面是没有判断m_SupportsBoxFilterForShadows的,所以_MainLightShadowOfset赋值正确了。

感谢Xuan@UWA问答社区提供了回答,欢迎大家转至社区交流:

https://answer.uwa4d.com/question/636268dda192b2284281a26d

Editor

Q:为什么在Unity 2021中,阻止AssetPostprocessor代码改变导致相关资源Reimport?

2021开始Unity有了一个新的特性 - 在继承AssetPostprocessor的类有较大改动时,经常试图重载相关类型的资源。

实践中,因为项目资源Reimport会花费大量时间,多数修改期间都是只刷新部分路径验证。之后才会在统一的时间刷新项目的资源组。

现在有没有Editor配置可以阻断代码改动造成的资源重载?或者一些可以自动裁剪Library资源以及修改Meta文件,但不会在相应代码修改被触发的流程?

A:之前也问过,可以参考以下解答:

https://forum.unity.com/threads/unity-made-full-project-reimport-on-every-small-change.1066844/#post-7647370

感谢海贼猎人@UWA问答社区提供了回答,欢迎大家转至社区交流:

https://answer.uwa4d.com/question/635ba1d9a192b228427b51e9

封面图来源于网络


今天的分享就到这里。当然,生有涯而知无涯。在漫漫的开发周期中,您看到的这些问题也许都只是冰山一角,我们早已在UWA问答网站上准备了更多的技术话题等你一起来探索和分享。欢迎热爱进步的你加入,也许你的方法恰能解别人的燃眉之急;而他山之“石”,也能攻你之“玉”。

官网:www.uwa4d.com

相关文章

  • XCode内存和UnityProfiler内存有较大差值

    1)XCode内存和UnityProfiler内存有较大差值 2)Dynamic Bone插件和Job Syste...

  • iOS性能优化

    xcode -> open developer tool - > Instuments 黄色基本和内存有关 Act...

  • 栈块 堆块 全局块

    编译器会给if 和 else 两个范围内的block 分配栈内存, 但是只要出了这个范围之后, 栈内存有可能被覆写...

  • oc内存管理总结

    基本原理 (—)为什么要进行内存管理 由于移动设备的内存有限,每个app所占的内存是及其有限的,当app所占用的内...

  • js数组--window.Array和window.Functi

    window.Array和window.Function 标准库js内存栈内存和堆内存,栈内存有一个很重要的全局属...

  • java中栈内存和堆内存有什么区别

    java中栈内存和堆内存有什么区别 栈内存和堆内存的区别: 1、栈内存用来存放基本类型的变量和引用变量,堆内存用来...

  • 2019-10-17

    scala 内输出差值 println(s"$a")

  • Xcode结合Leaks检测内存泄露

    内存很重要!内存很重要!内存很重要! 重要的事情要说三遍。虽然现在项目大多数是ARC模式,Xcode会帮我们管理内...

  • 数据结构(三)--栈

    通常程序开发中内存管理是非常重要的,而内存主要分为占内存和堆内存。那么栈和堆内存有什么区别呢?希望在这篇文章里能带...

  • iOS高频面试题(持续更新)

    1、ARC和MRC管理内存有什么不同,iOS中内存管理的原理 2、assign和weak的区别,解释一下stron...

网友评论

      本文标题:XCode内存和UnityProfiler内存有较大差值

      本文链接:https://www.haomeiwen.com/subject/rwxexdtx.html