Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
wanghaofu
minigame-unity-webgl-transform
提交
c3a49eef
M
minigame-unity-webgl-transform
项目概览
wanghaofu
/
minigame-unity-webgl-transform
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
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 搜索 >>
提交
c3a49eef
编写于
12月 17, 2021
作者:
ocean2o11
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
增加性能面板使用说明
上级
571df3ba
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
20 addition
and
2 deletion
+20
-2
Design/OptimizationMemory.md
Design/OptimizationMemory.md
+19
-2
Design/PerfOptimization.md
Design/PerfOptimization.md
+1
-0
未找到文件。
Design/OptimizationMemory.md
浏览文件 @
c3a49eef
...
...
@@ -41,7 +41,7 @@ Unity WebGL是以WebAssembly+WebGL技术为基础的应用,运行在浏览器
## 三、内存查看工具
开发者可由系统进程、JavaScript Heap等方面去分析和查看游戏内存。
开发者可由系统进程、
UnityHeap、
JavaScript Heap等方面去分析和查看游戏内存。
### 3.1 进程总内存
查看总内存时,我们需要先确定监控的小游戏进程名称:
...
...
@@ -56,6 +56,23 @@ Unity WebGL是以WebAssembly+WebGL技术为基础的应用,运行在浏览器
使用
[
Perfdog
](
https://perfdog.qq.com
)
选择对应的设置-进程名,即可看到相关性能数据,iOS设备应以紫色的XcodeMemory为准。
<image
src=
'../image/optimizationMemory4.png'
width=
"1080"
/>
### 3.2 UnityHeap
开发体、体验版小游戏默认会在左上角呈现PerformenceStats, 开发者可通过改面板了解性能数值.
<image
src=
'../image/optimizationMemory6.jpg'
width=
"1080"
/>
每项指标有三个数值:当前帧、最小值、最大值
-
MonoUsedSize: 托管堆(如C#业务逻辑)当前的内存使用量
-
MonoHeap:托管堆的内存使用峰值
-
Graphic:GPU显存使用量(部分Unity版本存在BUG)
-
TotalReserverdMemory:本机堆(Native)内存分配峰值
-
TotalUnusedReserverdMemory:本机堆(Native)空闲内存值
-
TotalAllocatedMemory:本机堆(Native)当前的内存使用量
-
TotalMemorySize: UnityHeap总预分配内存大小
-
DynamicMemory:UnityHeap当前使用量
开发者尤其需要关注MonoHeap、TotalReserverdMemory、DynamicMemory这三项数值。如果游戏中有C原生代码(如lua)分配的内存,则需单独统计,该部分内存包括在DynamicMemory但并不包含在托管堆和本机堆。
### 3.2 JavaScript Heap
由于Unity WebGL是托管在浏览器环境中,因此JavaScript Heap包含了大部分(并非全部)我们关注的内存, 通常我们可以使用浏览器自带的内存工具。
#### FireFox Memory(PC)
...
...
@@ -64,7 +81,7 @@ Unity WebGL是以WebAssembly+WebGL技术为基础的应用,运行在浏览器
### 四、内存优化方案
以iOS为例,一款代码(导出目录/webgl/Build/xxx.code.unityweb或code.wasm)大小为30MB的游戏占用内存为:
小游戏基础库(130MB) + Cavnas(70MB) + 编译内存(300MB) + Unity
Heap(托管内存 + Native内存) + Gfx显存 + 音频 + 胶水层
。
小游戏基础库(130MB) + Cavnas(70MB) + 编译内存(300MB) + Unity
Heap(托管内存 + Native内存 + C原生代码内存) + Gfx显存 + 音频 + JavaScript内存(通常<100MB)
。
假如游戏需要支持低档机型,将内存控制到1G以内,业务侧(Unity Heap, Gfx显存,音频,胶水层)需控制在500MB左右。我们此处给出转换游戏中最容易遇到的内存问题与解决方案,如果开发者遇到内存问题时请逐个排查优化。
...
...
Design/PerfOptimization.md
浏览文件 @
c3a49eef
...
...
@@ -56,6 +56,7 @@ Unity WebGL导出形式相对于原生APP应用,需要开发者更关注性能
*
使用微信音频接口对Unity音频进行改造优化
更多信息请阅读:
*
[
优化Unity WebGL的内存
](
OptimizationMemory.md
)
*
[
压缩纹理优化
](
CompressedTexture.md
)
*
[
Unity WebGL内存原理详解
](
https://gameinstitute.qq.com/community/detail/112321
)
*
[
音频适配优化
](
AudioOptimization.md
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录