konvajs上的group太多,假设:10000个组,会影响性能吗?

假设:10000个组,每个组里都有文字,图片等内容,会影响性能吗?

const group = new Konva.Group({
        name: "Group-1",
      });
阅读 3k
4 个回答

用数据说话,你需要模拟1, 100, 1000, 10000个组,然后来个性能测试。你就有答案了


本文参与了SegmentFault 思否面试闯关挑战赛,欢迎正在阅读的你也加入。

计算机世界里任何东西多了,都影响性能,重要的是你如何去优化

你可以考虑对组进行分组,将具有相似属性的组放在同一组中。也可以使用缓存和/或懒加载等技术来减少不必要的绘制和更新。

https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/T...

推荐看一下 mdn 的这一篇文章,讲的是如何优化 canvas 的性能

  1. 提前在一个 OffscreenCanvas 进行预渲染
  2. 不要在 canvas 中使用浮点数作为坐标
  3. 不要将 drawImage 绘制的文件进行 scale 处理
  4. 因为 canvas 更新的时候需要重绘整个画布,所以针对一些复杂的场景,可以使用多层 canvas 叠加的方式
  5. 大的背景图片可以使用普通的 CSS 来渲染
  6. 使用 CSS transform 来控制 scale
  7. 如果不需要透明 backdrop 的话,可以将 alapha 参数关闭
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进