白鹭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人家好歹带有绘画功能。

【微信小游戏】游戏性能检测相关推荐

  1. (第39册)《微信小程序游戏开发快速入门到实战》夏敏捷著

    本书是微信小程序游戏开发的入门教程,通过大量案例介绍微信小程序游戏开发的基础知识和技巧.全书分三篇,基础篇对微信小程序的框架文件.微信小程序逻辑层和视图层.微信小程序组件进行详细介绍,包括JavaSc ...

  2. 微信小程序游戏「跳一跳」高分秘籍

    饱受争议的微信小程序从今年1月份上线到现在已经快一年了,被寄予厚望的小程序在这一年却并没有达到曾经预期的高度,反而是一直不温不火. 曾经有现象级的刷屏的小程序:匿名聊聊,本以为这会是小程序的新玩法.爆 ...

  3. 2022最新微信小程序游戏:一起来找茬

    正文: 2022最新微信小程序游戏:一起来找茬,有需要的自行去体验吧,其它的就没什么好介绍的了,程序是完整的. 程序: wwwsu.lanzouw.com/iVEie0bm8l5i 图片:

  4. python玩微信小程序游戏_用python一步一步教你玩微信小程序【跳一跳】

    12月28日,微信上线了小游戏「跳一跳」,瞬间成了全民游戏,如何牢牢占据排行榜的第一位呢?用Python帮助你,Python真的无所不能. 作为技术出身的我们,是不是想用技术改变排名呢? 注意:本文适 ...

  5. python玩微信小程序游戏_016 用python一步一步教你玩微信小程序【跳一跳】

    12月28日,微信上线了小游戏「跳一跳」,瞬间成了全民游戏,如何牢牢占据排行榜的第一位呢?用Python帮助你,Python真的无所不能. 作为技术出身的我们,是不是想用技术改变排名呢? 注意:本文适 ...

  6. python人脸检测与微信小程序_微信小程序实现人脸检测功能

    本文为大家分享了微信小程序实现人脸检测的具体代码,供大家参考,具体内容如下 因为本文章的人脸检测技术运用的是百度云人工智能,首先要有百度云的账号. 近期,人脸识别已经升级到了V3,开启了测试,所以也依 ...

  7. 微信小程序交互性能优化利器WXS的使用(一)

    微信小程序交互性能优化利器WXS的使用 WXS简介 WXS原理 注意事项(划重点) WXS的使用 引入WXS WXS的响应事件(重要) 开始食用WXS 封装视图层WXML实用小方法 WXS简介 WXS ...

  8. 微信小程序游戏为什么会频频爆火?和H5小游戏有什么区别?

    你的App里多久没有出现过一款新应用了?距离上一个现象级的应用抖音出现已经过去了6年.移动互联网已经相当成熟,近几年不管是游戏娱乐还是生活服务应用,很难出现爆款,反观小程序.轻应用小游戏却频频跑出黑马 ...

  9. 微信小程序 | 游戏开发之接宝石箱子游戏

    1.什么是微信小游戏 微信小游戏是小程序的一个类目,小游戏是微信开放给小程序的更多的能力,让小程序开发者有了开发游戏的能力.微信小游戏是在小程序的基础上添加了游戏库API.微信小游戏只能运行在小程序环 ...

  10. 微信小程序游戏开发文档以及开发工具地址

    微信小程序开发交流qq群   581478349    承接微信小程序开发.扫码加微信. 正文: 微信官方于 2017 - 12 - 28 日 开发微信小程序 开发小游戏 , 微信小程序小游戏开发官方 ...

最新文章

  1. PHP中常见的提示对照表
  2. linux递归创建文件夹_Python中并发请求创建文件夹带来的线程安全问题
  3. .NET 6 Preview 1发布!
  4. 【连载】如何掌握openGauss数据库核心技术?秘诀五:拿捏数据库安全(2)
  5. php fizz,php 的 FizzBuzzWhizznbsp;nbsp;
  6. 软件设计开发思想总结
  7. 获取项目中的文件流InputStream
  8. Enterprise Library修改后dll的签名改变
  9. IPD产品开发流程详解
  10. 华为usb 无线网卡 linux,Linux下使用华为h3c Aolynk WuB320G无线网卡
  11. Python爬虫新手入门教学(三):爬取链家二手房数据
  12. JAVA实现UTC时间转换成北京时间
  13. 淘宝CRM是如何通过数据分析进行解决问题的
  14. Doom3 CVarSystem分析
  15. 华为超越三星拿下第一!2019年全球5G手机出货量榜单揭晓
  16. Oracle Flashback之Flashback table和flashback drop
  17. S.M.A.R.T 参数详解及推荐指标
  18. LabVIEW编程LabVIEW开发 十六进制转换ASCII例程与相关资料
  19. ls、ls -a、ls -l、ls -al、ll、ll -a区别
  20. Python3+Flickrapi爬取图片

热门文章

  1. 使用ethtool限制服务器网速
  2. sip pbx_PBX免费CRM
  3. 如何下架自己的 APP(APP Store)
  4. 可以降低汽车气缸里面的机油由于摩擦产生的蓝烟的机油添加剂
  5. 基于51单片机的音乐喷泉彩灯proteus仿真原理图PCB
  6. 计算机科学视角,从计算机科学家的视角学习阅读与写作(七):科幻之美
  7. Java 内部类简介,理解,特点,注意事项
  8. reflect存在的意义和使用api
  9. DHCP,DNS,以及网关的意思和存在意义
  10. vue 显示日期只显示年月_vue获取年月日