测试环境:
Unity2022 使用GPUAnim技术实例化了300个怪物
设备:低端机三星A14
|
联发科 Helio G96 |
Mali-G57 MC2 |
2核 |
950 MHz |
API:GLES VS Vulkan (结论:VulKan性能较好)
① GPU 是否瓶颈
⭐Mali GPU Usage:GPU active
中文:GPU 活跃率
作用:GPU 有多少时间在工作
怎么看:
90–100% → GPU 满载(GPU bottleneck)
60%左右 → 还有空间
30%以下 → GPU 不是瓶颈
如果它长期接近 100%,说明:是 GPU 瓶颈
计算理论最大 cycles
已知:
GPU 频率 = 950 MHz = 950,000,000 cycles/s
采样窗口 = 0.1 秒
理论最大 cycles:
950,000,000 × 0.1
= 95,000,000 cycles
一行 GPU active 22,703,483 cycles
真实 GPU 利用率
22,703,483 / 95,000,000
≈ 0.231
≈ 23.1%
🎯 最终结论
你当前 GPU 使用率:
✅ 约 23%
|
利用率 |
判断 |
|
<50% |
很安全 |
|
50–70% |
正常 |
|
70–85% |
偏高 |
|
85–100% |
GPU瓶颈 |
② 是 Fragment 还是 Vertex 瓶颈
⭐Mali GPU Usage:Fragment queue active
中文:片元队列活跃率
⭐Mali GPU Usage:Non-fragment queue active
中文:非片元队列(Vertex/Compute)活跃率
判断方法:
|
情况 |
说明 |
|
Fragment 高 |
像素 shader 重 |
|
Non-fragment 高 |
顶点或Compute重 |
分析器曲线图


具体数据

③ Shader 是否 ALU 重
⭐ Mali Core Unit Utilization:Arithmetic unit utilization
中文:算术单元利用率
高 → shader 计算量大(大量 mul/add/pow)
判断标准:
|
数值 |
含义 |
|
0–30% |
很轻 |
|
30–60% |
中等 |
|
60–80% |
偏高 |
|
80%+ |
ALU瓶颈 |
④ 纹理采样是否重
⭐ Mali Core Unit Utilization:Texture unit utilization
中文:纹理单元利用率
高 → 纹理采样多(贴图采样多)
|
数值 |
含义 |
|
<40% |
正常 |
|
40–70% |
贴图多 |
|
70%+ |
采样过重 |


⑤ 是否带宽瓶颈(最关键)
⭐ Mali Memory Bandwidth:Read bandwidth
⭐ Mali Memory Bandwidth:Write bandwidth
中文:内存读写带宽
如果接近设备上限:带宽瓶颈
这在 Mali 上非常常见。
这个要看:设备理论带宽(例如 15–30GB/s)
如果接近峰值:带宽瓶颈
如果只是 30%:很安全
⑥ L2 访问情况
⭐ Mali Load/Store Memory Usage:L2 read bytes/cy
⭐ Mali Load/Store Memory Usage:L2 write bytes/cy
高 → 数据频繁进出缓存
⑦ 外部内存访问
⭐ Mali Load/Store Memory Usage:External read bytes/cy
⭐ Mali Texture Memory Usage:External read bytes/cy
高 → 真正在访问显存(慢)




⑧ Overdraw(非常重要)
⭐ Mali Overdraw:Fragments/pixel
含义:
每个像素平均被画几次
1.0 → 正常
2~3 → 有过度绘制
4+ → 严重 overdraw

⑨ Early Z 效率
🧱 Mali Early ZS kill rate
中文:Early Z 剔除率
高 → 说明遮挡剔除有效
低 → 说明透明或关闭 ZTest
|
数值 |
含义 |
|
>30% |
很好 |
|
10–30% |
正常 |
|
<10% |
深度无效 |
⑩ Tile 写回
🧱 Mali Tile Memory Usage:Tile write bytes/px
高 → tile 被频繁写回外部内存(不好)
常见原因:
MSAA
多RT
中间 RenderTexture
关键指标解释查找表
一、GPU 使用率类(整体忙不忙)
Mali GPU Usage: GPU active
中文:GPU 活跃周期数
作用:GPU 在采样区间内实际工作的周期数
判断:必须结合 total cycles 才能算利用率
异常:持续接近峰值 + 掉帧 = GPU瓶颈
Mali GPU Usage: Fragment queue active
中文:片元队列活跃率
作用:Fragment(像素)阶段忙不忙
高说明:像素 shader 重 / 过度绘制
Mali GPU Usage: Non-fragment queue active
中文:非片元队列活跃率(Vertex/Compute)
作用:顶点或Compute阶段忙不忙
高说明:顶点过多 / 骨骼动画重 / Compute重
Mali GPU Usage: Compute queue active
中文:计算队列活跃率
作用:Compute Shader使用情况
高说明:大量GPU计算任务
二、核心单元利用率(ALU / Texture)
Mali Core Unit Utilization: Arithmetic unit utilization
中文:算术单元利用率(ALU)
作用:shader计算量大小(mul/add/pow等)
判断标准:
<30% 轻
30–60% 正常
60% 偏重
80% ALU瓶颈
Mali Core Unit Utilization: Texture unit utilization
中文:纹理单元利用率
作用:贴图采样强度
高说明:采样次数多 / 大量贴图
Mali Core Unit Utilization: Load/Store unit utilization
中文:读写单元利用率
作用:缓存/内存读写压力
高说明:频繁访问buffer/RT
三、带宽类(最重要)
Mali Memory Bandwidth: Read bandwidth
中文:内存读带宽
作用:从显存读取数据的速率
高说明:贴图读取多
Mali Memory Bandwidth: Write bandwidth
中文:内存写带宽
作用:写回显存速率
高说明:RenderTarget写入多 / MSAA
Mali Memory Bandwidth: Total bandwidth
中文:总内存带宽
作用:读写总和
接近设备峰值 = 带宽瓶颈
四、L2 Cache 访问
Mali Load/Store Memory Usage: L2 read bytes/cy
中文:L2缓存读字节/周期
作用:缓存读取频率
高说明:缓存压力大
Mali Load/Store Memory Usage: L2 write bytes/cy
中文:L2缓存写字节/周期
作用:缓存写入频率
五、External Memory(外部显存访问)
Mali Load/Store Memory Usage: External read bytes/cy
中文:外部内存读字节/周期
作用:真正访问显存
高说明:带宽瓶颈
Mali Texture Memory Usage: External read bytes/cy
中文:贴图外部内存读取
作用:贴图是否命中缓存
高说明:缓存命中率低
六、Overdraw / 片元相关
Mali Overdraw: Fragments per pixel
中文:每像素片元数量(过度绘制)
判断标准:
1.0 理想
2.0 正常
3 危险
Mali Overdraw: Fragment count
中文:片元总数
作用:总像素工作量
七、Early Z / 深度测试
Mali Early ZS kill rate
中文:Early Z 剔除率
高说明:遮挡剔除有效
低说明:透明过多
Mali Early ZS test rate
中文:Early Z 测试率
作用:深度测试参与程度
八、Tile-Based 架构相关
Mali Tile Memory Usage: Tile write bytes/px
中文:每像素Tile写回字节数
高说明:Tile被频繁写回显存
原因:
MSAA
多RenderTarget
中间RT
Mali Tiler: Primitives
中文:图元数量(三角形数量)
高说明:模型多
Mali Tiler: Visible primitives
中文:可见图元数
作用:实际参与绘制的三角形
九、Shader Core 活跃度
Mali Shader Core: Active cycles
中文:Shader核心活跃周期
作用:核心执行时间
Mali Shader Core: Idle cycles
中文:Shader核心空闲周期
高说明:CPU喂不饱GPU
十、Stall / 等待类
Mali Stall: External memory stall
中文:等待外部内存阻塞
高说明:带宽瓶颈
Mali Stall: Texture fetch stall
中文:纹理读取阻塞
高说明:贴图访问慢
Mali Stall: Arithmetic dependency stall
中文:算术依赖阻塞
高说明:shader指令链过长
十一、综合判断逻辑(你可以保存)
如果:
GPU active 高
Arithmetic 高
→ ALU瓶颈
如果:
GPU active 高
Texture 高
External bandwidth 高
→ 带宽瓶颈
如果:
Fragments/pixel 高
→ Overdraw问题
如果:
Idle cycles 高
→ CPU 限制
十二、给你一个最终理解框架
Mali性能只看五大类:
GPU忙不忙(GPU active)
算力够不够(Arithmetic)
贴图重不重(Texture)
带宽爆不爆(External BW)
过度绘制严重不(Fragments/pixel)








暂无评论内容