赞
踩
原文链接
https://blog.csdn.net/weixin_40137140/article/details/134083407?spm=1001.2014.3001.5501
本篇文章是作者本人通过查看微信unity小程序官方内存优化文档和结合自身项目经验总结所得,会有一定的重复内容,在观看本篇文章之前,请仔细浏览微信官方内存优化文档,否则可能对文章无法理解,如有错误,欢迎指出。
微信unity小程序优化文档:https://github.com/wechat-miniprogram/minigame-unity-webgl-transform/blob/main/Design/OptimizationMemory.md
1.轻度游戏:
2.中重度游戏:
1.进程内存详情分析:
2.UnityHeap内存:
3.通过以上信息得出结论:
基础库+Canvas:在小游戏环境中并不存在DOM,但依然会存在一些基本消耗,比如小游戏公共库,Canvas画布等。典型地,小游戏公共库约占用内存100~150MB,Canvas 画布与设备物理分辨率相关,比如iPhone 11 Promax占用约80MB。
Unity Heap: 托管堆、本机堆与原生插件底层内存。举例,游戏逻辑分配的C#对象等托管内存、Unity管理的AssetBundle和场景结构等本机内存、第三方原生插件(如lua)调用的malloc分配。
WASM编译: 代码编译与运行时指令优化产生的内存,在Android v8、iOS JavascriptCore中还需要大量内存进行JIT优化
GPU内存:纹理或模型Upload GPU之后的显存占用, 由于Unity2021之前不支持压缩纹理,纹理内存会造成明显膨胀。
音频:Unity将音频传递给容器(浏览器或小游戏)后,播放音频时将占用的内存。目前UnityAudio将自动适配微信小游戏,特别地请避免使用fmod播放长音频。
内存浮动:主要是渲染压力大时,浏览器缓存没有及时释放。
如下列带Cache的接口:
表格数据去重,在小程序上因为内存比较紧张,某些类型的游戏往往表格数据较多,处理不当内存可能会突破100M,无论是存储在C#还是lua上,都应该对数据进行合并,尤其是大量的字符串,具体算法可以结合自身项目发挥。
unity 图片资源格式关闭Read/Write与Mipmap
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。