Egret社区

egret html5游戏项目性能优化

2015-1-15 16:51
883134
本题已加入常见问题汇总 » 性能优化最佳实践,更多性能优化最佳实践相关的话题欢迎关注讨论


经过一两个星期的egret项目性能优化,最终发现几个比较实用的优化方法。主要是针对手机h5网页环境下的。现在分享给各位苦逼的程序猿:

1、尽可能减少addChild 的图片个数。一、尽可能将多个图片合成一张图片,经测试发现,多个小图合起来的尺寸虽然比大图小,但是显示多个小图反而更加耗性能。二、尽可能将UI上东西画到面板的背景图上,从而减小重叠的图片个数。

2、使用脏矩技术。游戏应该默认将整个显示区域设置为脏矩,经过测试,在大的背景图片下,或者UI部分显示的情况下,性能差别明显;如果显示某个面板,那么就将这个特定的面板设为脏矩。让我失望的是:使用脏矩技术后,1.5.1、1.5.3引擎下,gui面板里面的九宫格图片显示竟然错乱,但是开启硬件加速就不会错乱了。
var rect = new egret.Rectangle( 0, 0, stageWidth, stageHeight );
egret.RenderFilter.getInstance().addDrawArea( rect );

3、背景地图截块显示。将大地图截成很多小块,不显示的从场景中removeChild。用过TextureMerger的人知道,我们可以为大地图手动设置小图块,如下:

{"file":"地图.png","frames":{
"001":{"x":0,"y":0,"w":100,"h":50,"offX":0,"offY":0,"sourceW":100,"sourceH":50},
"002":{"x":100,"y":0,"w":100,"h":50,"offX":0,"offY":0,"sourceW":100,"sourceH":50},
"003":{"x":0,"y":50,"w":100,"h":50,"offX":0,"offY":0,"sourceW":100,"sourceH":50},
"012":{"x":100,"y":50,"w":100,"h":50,"offX":0,"offY":0,"sourceW":100,"sourceH":50}}}

以上内容是将 “地图.png” 取出4个 100 * 50 的图片。

4、图片不能超过 2048 * 2048,经过测试超过这个尺寸,性能变化非常异常。

5、不要对图片进行变形,如scaleY,scaleX, ratation, width, height。经过测试,在脏矩内,数量更少的图片设置scaleX和scaleY后,性能损耗比数量更多的图片的情况严重。

6、图片尺寸尽可能小,在不影响画质的情况下,尽能将图片尺寸变小。为了大分辨率的移动设备上显示小尺寸的图片,且不设置scaleY,scaleX, width, height,我们应该将整个游戏尺寸设置更小,让手机平台对整个游戏进行放大。推荐用480 * 800,这个尺寸经过测试体验发现,超高分辨率的手机看起来画质还是挺满意,玩家是完全能接受的。

7、开启硬件加速。在项目/launcher/egret_loader.js可以设置。经过测试,在iphone5s下,开启加速后,帧频在卡顿情况下能增加10帧以上。但是奇怪的是,在电脑chrome下,把大地图截成3000个小图片,全部添加,开启加速,帧频反而下降15帧以上。所以大家应该针对不同平台开启加速。另外1.5.1有个bug,在硬件加速下,graphics不能draw,draw的东西不会显示。

完全自己的经验与直觉,如果有什么说得不对或者不好的地方,请各位轻喷口水。


参与人数 2银子 +20 贡献 +2 收起 理由
xsstomy + 20 很给力!
A闪 + 2 赞一个!

查看全部评分

分享到 :
15 人收藏

34 个回复

倒序浏览
Once  斑竹 | 2015-1-15 16:53:58
感谢分享
codefish  圆转纯熟 | 2015-1-15 17:06:34
不错,感谢分享
大烧卖  登堂入室 | 2015-1-15 17:09:14
很实用的经验,赞一个
yicaoyimu  初窥堂奥 | 2015-1-16 10:04:20
感谢分享~~~~
cfcf  初窥堂奥 | 2015-1-16 10:23:02
不错!顶起来~~~
matjumbo  登堂入室 | 2015-1-16 10:41:39
1.游戏应该默认将整个显示区域设置为脏矩 整个区域脏矩那岂不是都不会渲染 有变动的地方怎么处理呢?
4.这个意思是如果有需求旋转这些最好弄多个图来处理 不使用ratation?
5.没明白撒意思
ktomcat  圆转纯熟 | 2015-1-16 11:15:07
很实用的经验 谢谢分享
yukunpeng  登堂入室 | 2015-1-16 14:47:24
yukunpeng  登堂入室 | 2015-1-17 10:01:33
楼主大神,开启硬件加速具体修改哪里?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|京网文[2014]0791-191号|京ICP证150115号|Egret社区 ( 京ICP备14025619号 )

Powered by Discuz! X3.4 © 2001-2019 Comsenz Inc.

返回顶部