2

如何优化.so mmap内存占用 - UWA问答 | 博客 | 游戏及VR应用性能优化记录分享 | 侑虎...

 1 year ago
source link: https://blog.uwa4d.com/archives/TechSharing_319.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

1)如何优化.so mmap内存占用
​2)模拟器下物理碰撞失效
3)Unity RenderTexture的释放在安卓上并不能使GL内存完全回落
4)数字人中,怎么做到胡子固定在嘴巴皮肤上


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

UWA 问答社区:answer.uwa4d.com
UWA QQ群:465082844

Memory

Q:项目PSS内存过高,使用adb指令抓取内存构成,发现.so mmap部分达到了180MB。这块有没有优化建议?

A1:可以从以下三个方向查一下:

1.泛型Template用的是否较多
2.自动化生产的代码是否较多
3.Lua生产的Wrapper代码是否较多

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

A2:还有以下两点:
1.删除无用插件、代码
2.IL2CPP是否进行裁剪

感谢郑骁@UWA问答社区提供了回答,欢迎大家转至社区交流:
https://answer.uwa4d.com/question/63350e03e73cb53fa4e11ae6


Physics

Q:在雷电模拟器下,有大概率车与动态创建物体没碰撞,但是很奇怪的是某些相同Layer有的可以碰撞。

后面直接空场景打包模拟器运行,创建cube + rigidbody赋值不同Layer模拟,有时候是有的Layer之间全部没有碰撞,还会出现同一个运行每次会碰撞的Layer都不一样。

查了好久没啥思路,有没有大佬遇到相似问题?

以上问题有哪位大拿也曾经做过类似的测试,欢迎转至社区交流分享:
https://answer.uwa4d.com/question/63aaad523bd6691a9dd486ba


Memory

Q:Unity RenderTexture的释放在安卓上并不能使GL内存完全回落?

Unity版本:2020.3.21.f1
测试机:HUAWEI P30
内存统计工具:Perfdog

问题详情:
情况1:创建RT并立刻卸载,此时GL内存完全回落。
情况2:创建RT不卸载,此时GL上升并稳定。再创建RT并立刻卸载,此时GL上升,但回落时(也有可能不回落)不会回到之前位置,会有一部分残留,类似于泄漏的情况。
想请问下为什么会发生这种情况?

我搭建了一个测试场景,主要测试了两个函数,第一个函数只生成RT不卸载、第二个函数生成RT并立刻卸载。

1.png

在真机上测试结果:

2.png

可以看到前三次,调用方法2对应了情况1,此时内存回落正常。但在调用方法1后再调用方法2,则会产生内存无法回落到原位置的情况。

目前查到的资料:参考了UWA上的一篇文章《分享一次查找GfxDriver内存暴涨的经历》

里面是这样解释的:

3.png

对于GL显存,里面说到回落不到原位置的原因是只卸载了Main Memory,而不卸载Pinned Memory,那有什么方法卸载掉Pinned Memory使内存完全回落的方法吗?

我对Main Memory和Pinned Memory具体是什么不太了解,想请教一下大家。

以上问题有哪位大拿也曾经做过类似的测试,欢迎转至社区交流分享:
https://answer.uwa4d.com/question/63aab9673bd6691a9dd49368


Animation

Q:数字人中,怎么做到胡子固定在嘴巴皮肤上?口型控制应用时,胡子怎么跟着嘴巴皮肤同步运动变形?

A:在数字人模型中,胡子的运动变形可以通过在嘴巴皮肤模型上添加骨骼来实现。首先,您需要在嘴巴皮肤模型上创建一些骨骼,并将它们附着在相应的位置。然后,您可以使用骨骼动画功能,在口型控制时通过控制骨骼的运动来实现胡子的跟随变形。

为了保证胡子能够固定在嘴巴皮肤上,您可以在创建骨骼时,在骨骼根部和嘴巴皮肤模型之间添加控制点(Control Point)。控制点可以用来连接骨骼和嘴巴皮肤,并使得骨骼的运动对嘴巴皮肤产生影响。通过添加控制点,您就可以在保证胡子固定的同时,让胡子能够随着嘴巴皮肤的变形而变形。

感谢Hyhom@UWA问答社区提供了回答,欢迎大家转至社区交流:
https://answer.uwa4d.com/question/63aab5b63bd6691a9dd48fd5

封面图来源于网络


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

官网:www.uwa4d.com
官方技术博客:blog.uwa4d.com
官方问答社区:answer.uwa4d.com
UWA学堂:edu.uwa4d.com
官方技术QQ群:465082844


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK