【微信小游戏】游戏性能检测
白鹭cost
cost的两个因素有必要理解下,对于性能的检测很有帮助
1、代表每帧代码支出时间(ms)2、代表每帧draw(绘制)花费时间
对于小游戏的检测,可以简单的看下cost的两个数值,然后问题可以侧重在cpu的运算上还是绘制上了。同时这两个数值相加,最好不要超过每帧的耗时。
文本和位图的问题
说到底就是矢量图【文本是矢量图,在有的地方不是,至于这方面的知识点,反正我是不知道在哪里看到过】和位图的问题
先复制一下知乎上,关于矢量图和位图高赞的一个回答:
矢量图和位图的对一块区域的渲染的「描述方式」是不同的:
位图定义了区域内每个位置的颜色值;
最传统的矢量图SVG实际上是一种XML格式,是通过「路径」和「填充颜色」来描述渲染的。由于「路径」在缩放的情况下并不会失真,因此矢量图具有不失真的特性。
因此,在「对像素的控制」上,矢量图是无法和位图相比的(位图是精确控制),所以大家会说「矢量图的表现力不如位图」。
在简单图形的情况下,矢量图的文件大小是比位图小的。但是,如果是更加细致的图像,矢量图的「路径」就会越多,路径信息量会膨胀得很快。
这种膨胀,不仅是文件大小膨胀,还有对渲染能力要求的膨胀。
另外,位图处理其实已经成为一种标准化流程,可以硬编码到显卡内,显卡就是专门为了处理位图而存在的。
而矢量图其实还不存在一种标准格式和标准处理流程,主要有SVG和Adobe Flash。因此处理矢量图只能靠CPU。
在我们项目中,文本带有如下特性:
1、主界面10多个变更频繁2、size>=263、带滤镜4、超大数类型,数字显示类似999.99bb
之所以想换为位图,有如下考虑:
1、安卓系列手机对滤镜的支持,丧心病狂般的辣鸡,你的滤镜来多几个,说不定直接拖垮游戏。2、游戏类似于切水果,彩虹岛,这种操作界面游戏,文本大量频繁变更是很没必要的,在上面的4中,有可能长期处于一个不变的数字但数字在改变的状态,这时候用图片可以很明显减少drawcall。我们还有一个场景是升级的界面,因为不频繁改变,所以用的是文本,不过在等级特别高的情况下,我升级也是很卡,不知道是不是这方面的问题,待我文章写完,再去测试下。3、之前做过的H5游戏,已经有血一般的教训,所以直接用位图代替了。
游戏闪屏
一直觉得轻量级的为微信小游戏,不应该会闪退但现实就这么残酷,第一次测试就把一台挺新款的vivo给闪退了,一看到闪退,那内存准爆胎了。内存爆掉的情况
可能如下:
1、滑动过程中,不断new image2、新建的图片不断用tween动画3、苹果系统划线的过程中不断创建shape,安卓系统不断创建纹理。(不同系统由于微信小游戏支持不同,需要采用两套划线方式)4、成功触碰会导致频繁调用音效(由于不同系统白鹭的音效会出现问题,懒的去解决,也写了两套)
以前总觉得小游戏,产生的对象不是那么多,同时小对象应该无伤大雅,对手机的影响不大,但现实啪啪啪之后,还是乖乖的做出了修改:
1、给飞来飞去的image一个对象池,这个对象池只是针对这个image的对象池,其它功能的image不回收到这个对象池。2、在测试中,tween在性能占据上,真的可以忽视掉,反正我是没处理掉,如果有效果,希望有人能够说下,这样我再给这货个对象池。3、好吧,给shape一个对象池吧,浪费是一种可耻【这是苹果系统的】。安卓系列的将纹理设置为私有变量,每次drawToTexture吧【其实奔溃主要是在这里】4、音效这里不会导致奔溃,但是特别耗cpu,之后说。
总结起来就是一些小对象确实是可以肆无忌惮的挥霍创建,但作为前端,在渲染系列对象的创建上是能省则省,虽然纹理看上去人家继承的HashObject,且只有什么x,y,但renderT人家好歹带有绘画功能。
【微信小游戏】游戏性能检测相关推荐
- (第39册)《微信小程序游戏开发快速入门到实战》夏敏捷著
本书是微信小程序游戏开发的入门教程,通过大量案例介绍微信小程序游戏开发的基础知识和技巧.全书分三篇,基础篇对微信小程序的框架文件.微信小程序逻辑层和视图层.微信小程序组件进行详细介绍,包括JavaSc ...
- 微信小程序游戏「跳一跳」高分秘籍
饱受争议的微信小程序从今年1月份上线到现在已经快一年了,被寄予厚望的小程序在这一年却并没有达到曾经预期的高度,反而是一直不温不火. 曾经有现象级的刷屏的小程序:匿名聊聊,本以为这会是小程序的新玩法.爆 ...
- 2022最新微信小程序游戏:一起来找茬
正文: 2022最新微信小程序游戏:一起来找茬,有需要的自行去体验吧,其它的就没什么好介绍的了,程序是完整的. 程序: wwwsu.lanzouw.com/iVEie0bm8l5i 图片:
- python玩微信小程序游戏_用python一步一步教你玩微信小程序【跳一跳】
12月28日,微信上线了小游戏「跳一跳」,瞬间成了全民游戏,如何牢牢占据排行榜的第一位呢?用Python帮助你,Python真的无所不能. 作为技术出身的我们,是不是想用技术改变排名呢? 注意:本文适 ...
- python玩微信小程序游戏_016 用python一步一步教你玩微信小程序【跳一跳】
12月28日,微信上线了小游戏「跳一跳」,瞬间成了全民游戏,如何牢牢占据排行榜的第一位呢?用Python帮助你,Python真的无所不能. 作为技术出身的我们,是不是想用技术改变排名呢? 注意:本文适 ...
- python人脸检测与微信小程序_微信小程序实现人脸检测功能
本文为大家分享了微信小程序实现人脸检测的具体代码,供大家参考,具体内容如下 因为本文章的人脸检测技术运用的是百度云人工智能,首先要有百度云的账号. 近期,人脸识别已经升级到了V3,开启了测试,所以也依 ...
- 微信小程序交互性能优化利器WXS的使用(一)
微信小程序交互性能优化利器WXS的使用 WXS简介 WXS原理 注意事项(划重点) WXS的使用 引入WXS WXS的响应事件(重要) 开始食用WXS 封装视图层WXML实用小方法 WXS简介 WXS ...
- 微信小程序游戏为什么会频频爆火?和H5小游戏有什么区别?
你的App里多久没有出现过一款新应用了?距离上一个现象级的应用抖音出现已经过去了6年.移动互联网已经相当成熟,近几年不管是游戏娱乐还是生活服务应用,很难出现爆款,反观小程序.轻应用小游戏却频频跑出黑马 ...
- 微信小程序 | 游戏开发之接宝石箱子游戏
1.什么是微信小游戏 微信小游戏是小程序的一个类目,小游戏是微信开放给小程序的更多的能力,让小程序开发者有了开发游戏的能力.微信小游戏是在小程序的基础上添加了游戏库API.微信小游戏只能运行在小程序环 ...
- 微信小程序游戏开发文档以及开发工具地址
微信小程序开发交流qq群 581478349 承接微信小程序开发.扫码加微信. 正文: 微信官方于 2017 - 12 - 28 日 开发微信小程序 开发小游戏 , 微信小程序小游戏开发官方 ...
最新文章
- PHP中常见的提示对照表
- linux递归创建文件夹_Python中并发请求创建文件夹带来的线程安全问题
- .NET 6 Preview 1发布!
- 【连载】如何掌握openGauss数据库核心技术?秘诀五:拿捏数据库安全(2)
- php fizz,php 的 FizzBuzzWhizznbsp;nbsp;
- 软件设计开发思想总结
- 获取项目中的文件流InputStream
- Enterprise Library修改后dll的签名改变
- IPD产品开发流程详解
- 华为usb 无线网卡 linux,Linux下使用华为h3c Aolynk WuB320G无线网卡
- Python爬虫新手入门教学(三):爬取链家二手房数据
- JAVA实现UTC时间转换成北京时间
- 淘宝CRM是如何通过数据分析进行解决问题的
- Doom3 CVarSystem分析
- 华为超越三星拿下第一!2019年全球5G手机出货量榜单揭晓
- Oracle Flashback之Flashback table和flashback drop
- S.M.A.R.T 参数详解及推荐指标
- LabVIEW编程LabVIEW开发 十六进制转换ASCII例程与相关资料
- ls、ls -a、ls -l、ls -al、ll、ll -a区别
- Python3+Flickrapi爬取图片