收藏
回答

小程序和小游戏中canvas性能差异

问题模块 框架类型 问题类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
API和组件 Bug canvas 微信iOS客户端 iOS 6.6.7 2.0.8

感谢先:

   问题描述:

        需要在小程序实现一个scrollview列表,由于行数会多至数千行,会存在性能问题,考虑用自绘实现这块逻辑,逻辑是每次拖动都重绘可视区域, 但是初步实现,在开发工具上很流畅,但是在真机上会很卡,连续拖动fps会低至20、 10,甚至更低,但是同样的自绘方法在小游戏上实现fps一直维持在60,请问只是小程序canvas底层实现存在的性能问题么?不然会是什么原因?


最后一次编辑于  2018-05-25  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

2 个回答

  • 吃软饭.孙
    吃软饭.孙
    2018-05-25

    小程序中的 Canvas 是微信官方使用软件渲染方式绘制的(极其低效率的一种实现方式)。

    而微信小游戏则是使用原生浏览器的硬件加速实现的。(通过屏蔽了一些功能实现的)。

    所以性能差距会如此之多。

    2018-05-25
    赞同 1
    回复 3
    • Jedore
      Jedore
      2018-05-25
      那请问小程序中的原生scrollview控件怎么实现的?和自绘canvas实现scrollview差距大吗?
      2018-05-25
      回复
    • 吃软饭.孙
      吃软饭.孙
      2018-05-25回复Jedore
      scrollview 在UI层面是做了优化的,它不是循环绘制所有的内容。 但是层面的话,你数据量过多肯定是会造成循环检测绘制内容的问题。 所以最好是在用户翻页到某个程度将最上层的内容删除,用户拉上去的时候再添加到列表中。 具体做法可以参考HTML瀑布流做法。 因为你们遇到的问题其实是一个。
      2018-05-25
      1
      回复
    • Jedore
      Jedore
      2018-05-25回复吃软饭.孙
      好的,我去查看尝试一下。 感谢!!!!
      2018-05-25
      回复
  • 干掉丶大北兔 🆀🆀vip2
    干掉丶大北兔 🆀🆀vip2
    2018-09-12

    可以考虑使用webview嵌入h5来实现更好的渲染性能。

    2018-09-12
    赞同
    回复