Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
什么都不会的小弱鸡
minigame-unity-webgl-transform
提交
09240fe6
M
minigame-unity-webgl-transform
项目概览
什么都不会的小弱鸡
/
minigame-unity-webgl-transform
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
minigame-unity-webgl-transform
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
09240fe6
编写于
6月 07, 2022
作者:
O
oceanxiao
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
modify memory profile
上级
bfdaa513
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
4 addition
and
3 deletion
+4
-3
Design/OptimizationMemory.md
Design/OptimizationMemory.md
+4
-3
未找到文件。
Design/OptimizationMemory.md
浏览文件 @
09240fe6
...
...
@@ -24,14 +24,15 @@ Unity WebGL内存结构可先参考:
Unity WebGL是以WebAssembly+WebGL技术为基础的应用,运行在浏览器环境,因此游戏内存的分配也是完全托管在这个环境中。
适配在小游戏后,小游戏进程也就成为了“容器”,虽然不再是标准的浏览器,但内存组成结构与上图基本一致,典型游戏的内存占用如下图所示:
<image
src=
'../image/optimizationMemory10.png'
width=
"800"
/>
-
基础库+Canvas:在小游戏环境中并不存在DOM,但依然会存在一些基本消耗,比如小游戏公共库,Canvas画布等。典型地,
***小游戏公共库约占用内存100~150MB,Canvas 画布与设备物理分辨率相关**
*
,比如iPhone 11 Promax占用约80MB。
-
Unity Heap:
用于存储所有状态、托管的对象和本机对象以及当前加载的资源和场景的内存。举例,游戏逻辑分配的C#对象等托管内存,以及Unity管理的AssetBundle对象、场景结构等本机内存
。
-
Unity Heap:
托管堆、本机堆与原生插件底层内存。举例,游戏逻辑分配的C#对象等托管内存、Unity管理的AssetBundle和场景结构等本机内存、第三方原生插件(如lua)调用的malloc分配
。
-
WASM编译:
WebAssembly需要编译
,在Android v8、iOS JavascriptCore中还需要大量内存进行JIT优化
-
WASM编译:
代码编译与运行时指令优化产生的内存
,在Android v8、iOS JavascriptCore中还需要大量内存进行JIT优化
-
GPU内存:纹理或模型Upload GPU之后的显存占用, 由于Unity2021之前不支持压缩纹理,纹理内存会造成明显膨胀。
...
...
@@ -135,7 +136,7 @@ UnityHeap = max(托管/Mono内存) + max(Native/Reserved内存 + C原生代码
-
1.
[
压缩纹理优化
](
CompressedTexture.md
)
能最大程度地减少内存与解压开销。
-
2. 升级引擎至2021使用ASTC压缩纹理
### 4.3 Unity
Heap
### 4.3 UnityHeap
-
问题原因:Unity Heap是用于存储所有状态、托管的对象和本机对象,往往由于场景过大或由于业务原因造成瞬间内存峰值。
***由于Unity WebGL在单首帧内无法GC**
*,单帧内瞬间的内存使用非常容易造成crash。同时,*
**Heap是只增不减且存在内存碎片的。**
*
-
解决办法:
-
1. 转换设置设置合理的初始内存,建议值:休闲游戏256,中度(模拟经营、养成等)512,重度游戏(SLG,MMO)768,必须<1024
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录