客户端优化经验
2015-04-21 07:37
369 查看
从项目中积累了一些客户端性能优化经验
1.目前项目的在手机上跑,内存占用最大的是UI。在profile下看,一张2048的大图集占用的内存比一张1024的图集占用的内存要多出一倍,大概8M。所以优化方案是拆分图集,把大图集按功能分割成若干小图集(做成1024*1024),把单独的大图独自拉出来用UITexture异步加载。可以使内存大大优化。
2.目前项目的内存均值其实不高,但是峰值比较高。原因是没有重用内存实例化的gameObject,当特效或者角色的gameObject的逻辑实体destroy时,把gameObject也一并Destroy,创建销毁这一过程导致内存峰值增大。优化方案是在Destroy特效或者角色的GameObject时把GameObject缓存起来,减少创建销毁次数。当需要用相同的特效或者角色时直接在缓存池中取GameObject。在跨场景时把缓存池里的GameObejct
Destroy掉。
3.目前的UI 公用图集修改时,所有依赖用到此公有图集的UI打包时都和原来的不同(即时没有修改)。这样,我们做热更版本时,如果要修改公有图集,那么所有UI打包时都和之前的不一样,从而使打出来的热更包很大。原因是打包android UI创建的etc图集时,生成材质和两张etc图(一张透明图,一张不透明图),材质是每次都是直接new出来,没有用上次已有的材质。所以打出来的UI都和上次都不同。解决方案是,重用之前已经打出来的etc材质,这样修改公有图集时,不会把所有UI都重打,从而热更包的体积大大减少。
4.不透明图片不要用png,用jpg体积会小一点。
1.目前项目的在手机上跑,内存占用最大的是UI。在profile下看,一张2048的大图集占用的内存比一张1024的图集占用的内存要多出一倍,大概8M。所以优化方案是拆分图集,把大图集按功能分割成若干小图集(做成1024*1024),把单独的大图独自拉出来用UITexture异步加载。可以使内存大大优化。
2.目前项目的内存均值其实不高,但是峰值比较高。原因是没有重用内存实例化的gameObject,当特效或者角色的gameObject的逻辑实体destroy时,把gameObject也一并Destroy,创建销毁这一过程导致内存峰值增大。优化方案是在Destroy特效或者角色的GameObject时把GameObject缓存起来,减少创建销毁次数。当需要用相同的特效或者角色时直接在缓存池中取GameObject。在跨场景时把缓存池里的GameObejct
Destroy掉。
3.目前的UI 公用图集修改时,所有依赖用到此公有图集的UI打包时都和原来的不同(即时没有修改)。这样,我们做热更版本时,如果要修改公有图集,那么所有UI打包时都和之前的不一样,从而使打出来的热更包很大。原因是打包android UI创建的etc图集时,生成材质和两张etc图(一张透明图,一张不透明图),材质是每次都是直接new出来,没有用上次已有的材质。所以打出来的UI都和上次都不同。解决方案是,重用之前已经打出来的etc材质,这样修改公有图集时,不会把所有UI都重打,从而热更包的体积大大减少。
4.不透明图片不要用png,用jpg体积会小一点。
相关文章推荐
- 客户端性能优化实战经验分享
- TUP第十三期:客户端性能优化实战经验分享
- TUP第十三期:客户端性能优化实战经验分享
- 一个项目的性能优化经验
- mysql标准的21条实践性能优化经验分享 实用的mysql优化建议
- MySQL性能优化的最佳21条经验
- 提高mysql千万级大数据SQL查询优化30条经验(Mysql索引优化注意)
- 如何利用客户端缓存对网站进行优化?
- SQL 优化经验总结34条
- 存储过程编写经验和优化措施
- C#.NET 大型企业信息化系统 - 防黑客攻击 - SSO系统加固优化经验分享
- 用AD组策略------优化客户端(小技巧)
- mysql innodb引擎 sql优化经验总结
- 读取大文件时的优化经验
- 项目优化经验分享(三)数据调用同步与异步
- 一些数据库优化经验资料整理
- Oracle存储过程编写经验和优化措施
- GlassFish v3 优化经验分享
- SqlServer存储过程编写经验和优化
- arcims开发经验总结(4) (arcIMS 客户端 连接器的选择)