页游转手游的一些经验
来源:互联网 发布:网络qos 管理 编辑:程序博客网 时间:2024/06/10 01:22
应朋友之邀,写一点页游转手游的梗概,若有其他未提及之处,还望各位多多赐教!
第一阶段:必须做的事情
1、排查GCAlloc (new 的调用)
原因:频繁的GCAlloc 会导致C#自身的GC操作。GC操作在移动设备上耗时很高,最差的情况下可以导致每秒都会卡顿数百毫秒;
标准:常态下每帧0内存分配调用
经验: 1、杜绝foreach / unity的BUG,enumerator(boxing/unboxing)
2、杜绝Linq; (各种自动生成的delegate对象);
3、杜绝Reflection;
4、Dictionary 不得使用 Enum 作为key (boxing/unboxing)
5、可能的话,尽量使用ref传valuetype;(不是很重要,有了更好)
2、Shader重写
原因: 1、内存占用。
移动设备上,贴图的压缩格式不一样,一般使用 ETC或PVRTC 硬件压缩格式。这两种贴图都不支持Alpha通道. 使用ETC/PVRTC,即使使用2张同等分辨率的图(a+rgb),也能使贴图大小降至1/2--1/4;
如果使用原始带alpha通道的贴图格式兼容老shader,会导致极大的内存占用。
2、像素填充率。
移动设备显卡的像素带宽偏低,几乎要杜绝透明顶点色。各种多层alphaBlend做出的效果也要想变通的办法。否则发热量下不来,FPS上不去。
标准:全部内存占用必须尽可能的小,不超过80M为良好,极限不得超过120M,否则闪退根本停不下来。
经验:纹理共用运用到极致。
第二阶段:代码优化
code stripping;
代码要符合AOT规则
标准:开启stripping,编译出来的APP可以上真机跑,没异常。
经验:有异常会有日志
第三阶段:深度优化
1、资源大小
原因:解压的速度和内存占用平衡;
标准:如无必要,任何AssetBundle必须维持在1M以下;
2、UI自适应屏幕
经验:利用好NGUI的Anchor功能;
页游转手游关键词:内存占用、GC、AOT、Shader、Anchor; 任何时候都围绕着这些主题在做优化.
第一阶段:必须做的事情
1、排查GCAlloc (new 的调用)
原因:频繁的GCAlloc 会导致C#自身的GC操作。GC操作在移动设备上耗时很高,最差的情况下可以导致每秒都会卡顿数百毫秒;
标准:常态下每帧0内存分配调用
经验: 1、杜绝foreach / unity的BUG,enumerator(boxing/unboxing)
2、杜绝Linq; (各种自动生成的delegate对象);
3、杜绝Reflection;
4、Dictionary 不得使用 Enum 作为key (boxing/unboxing)
5、可能的话,尽量使用ref传valuetype;(不是很重要,有了更好)
2、Shader重写
原因: 1、内存占用。
移动设备上,贴图的压缩格式不一样,一般使用 ETC或PVRTC 硬件压缩格式。这两种贴图都不支持Alpha通道. 使用ETC/PVRTC,即使使用2张同等分辨率的图(a+rgb),也能使贴图大小降至1/2--1/4;
如果使用原始带alpha通道的贴图格式兼容老shader,会导致极大的内存占用。
2、像素填充率。
移动设备显卡的像素带宽偏低,几乎要杜绝透明顶点色。各种多层alphaBlend做出的效果也要想变通的办法。否则发热量下不来,FPS上不去。
标准:全部内存占用必须尽可能的小,不超过80M为良好,极限不得超过120M,否则闪退根本停不下来。
经验:纹理共用运用到极致。
第二阶段:代码优化
code stripping;
代码要符合AOT规则
标准:开启stripping,编译出来的APP可以上真机跑,没异常。
经验:有异常会有日志
第三阶段:深度优化
1、资源大小
原因:解压的速度和内存占用平衡;
标准:如无必要,任何AssetBundle必须维持在1M以下;
2、UI自适应屏幕
经验:利用好NGUI的Anchor功能;
页游转手游关键词:内存占用、GC、AOT、Shader、Anchor; 任何时候都围绕着这些主题在做优化.
0 0
- 页游转手游的一些经验
- 资深开发者告诉你“页游转手游”应注意的五大点
- 自己画的转手绘
- 关于机动车车牌的转手
- 页游项目开发中的一些经验和教训
- 页游项目开发中的一些经验和教训
- RR的一些经验
- HttpServer的一些经验
- Ncverilog 的一些经验
- 安全的一些经验
- 一些小小的经验
- 系统分析的一些经验
- 一些系统分析的经验
- 一些系统分析的经验
- 一些printf的经验
- 网上的一些经验
- Hadoop的一些经验
- 解决问题的一些经验
- 【黑马程序员】Objective-C是什么?关于Objective-C的一些语法
- 移动开发框架调查
- 解析STM32的启动过程
- 连接ios的重要oc
- 苹果电脑MAC地址怎么查询
- 页游转手游的一些经验
- hdu4276 树形dp
- 多个input求和的实现
- c语言中几个常见排序
- android Environment
- Ceilometer的数据采集机制
- 快速幂取余算法总结详解
- 遗传算法入门实例
- 苹果设备(IPAD和IPHONE)怎么查看MAC地址