Laya性能统计面板

AS3调用性能统计面板

引入 laya.utils.Stat类,直接使用Stat.show()方法

FPS(Frames Per Second)-每秒传输帧数,帧速越高,视觉上感觉越流畅

当前PC与手机等设备的满帧是60帧,流畅度要求低的游戏,可以采用引擎的帧速限制方法Stage.FRAME_SLOW,将FPS帧速限制为最高30帧。

更好的方法是采用自动模式,以30的帧率运行,但是鼠标活动后自动加速到60,鼠标不动2秒后降低为30帧,以节省消耗,可以在初始化游戏设置的时候选择

Laya.stage.frameRate = Stage.FRAME_MOUSE;

		/**帧率类型,支持三种模式:fast-60帧(默认),slow-30帧,mouse-30帧(鼠标活动后会自动加速到60,鼠标不动2秒后降低为30帧,以节省消耗),sleep-1帧。*/
		public function set frameRate(value:String):void {
			_frameRate = value;
			if (Render.isConchApp) {
				switch (_frameRate) {
					case FRAME_SLOW: 
						Browser.window.conch && Browser.window.conchConfig.setSlowFrame && Browser.window.conchConfig.setSlowFrame(true);
						break;
					case FRAME_FAST:
						Browser.window.conch && Browser.window.conchConfig.setSlowFrame && Browser.window.conchConfig.setSlowFrame(false);
						break;
					case FRAME_MOUSE:
						Browser.window.conch && Browser.window.conchConfig.setMouseFrame && Browser.window.conchConfig.setMouseFrame(FRAME_MOUSE_THREDHOLD);
						break;
					case FRAME_SLEEP:
						Browser.window.conch && Browser.window.conchConfig.setLimitFPS && Browser.window.conchConfig.setLimitFPS(1);
						break;
					default: 
						throw new Error("Stage:frameRate invalid.");
						break;
				}
			}
		}

FPS中,第一个60表示当前FPS帧速,越高则画面越流畅。

第二个黄色的16表示每帧渲染消耗的时间,单位毫秒,值越小越好。

Sprite统计的是渲染的节点数(包括容器),值越低越好,所以设计的时候不要加没必要的容器嵌套。

WebGL模式下,CurMem表示内存与显存的占用,值越低越好。

在Canvas模式下,没有显存的概念,CurMem只表示内存的占用情况,值越低越好。

Shader是WebGL模式独有的性能指标,表示每帧Shader提交次数,值越低越好。

Canvas 1/0/1分别表示每帧重绘的画布数量 / 缓存类型为“normal”类型的画布数量 / 缓存类型为“bitmap”类型的画布数量

DrawCall(Canvas模式下DrawCall表示每帧的绘制次数,包括图片、文字、矢量图;WebGL模式下DrawCall表示渲染提交批次,每次准备数据并通知GPU渲染绘制的过程称为1次DrawCall),尽量控制在100以下

项目中优先考虑DrawCall,超过120,就得考虑使用caheAs了,但是内存太大时(150M或者200M,视具体项目具体规定而定),又得考虑放弃使用caheAs,低端机内存有限,占用内存太大会崩

发布了61 篇原创文章 · 获赞 2 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/qq_22794043/article/details/89379921