Incubator-echarts: 无任何操作的情况下,requestAnimationFrame() 被无限的调用

Created on 23 Mar 2016  ·  6Comments  ·  Source: apache/incubator-echarts

问题简述 (One-line summary)

发现一直在不停的调用依赖库 zrender 下面的 Animation.js 中的 requestAnimationFrame() ,即使我没有做任何操作。

版本及环境 (Version & Environment)

  • ECharts 版本 (ECharts version): 3.1.3
  • 浏览器类型和版本 (Browser version): Chrome
  • 操作系统类型和版本 (OS Version): OSX 10.11

    重现步骤 (Steps to reproduce)

  1. 往依赖库 zrender 里 src/animation/Animation.js 代码里 start() 下的 step() 里面加 console.info('requestFrameAnimation calling'),将发现一直打印
    2.打开官网示例,柱图, 完全打开后。开启开发者工具 Profile -> Collect JavaScript CPU Profile ,开始收集后,不做任何操作,会发现 requestAnimationFrame 被调用了,且它的 cpu 使用率在最上方。而 c3.js 就不会这样,不操作时根本不会调用 requestAnimationFrame

Most helpful comment

这个 issues 还是存在的.
在 echarts 图形初始渲染的时候, self._running 一直是 true, 所以requestAnimationFrame这个函数一直在 执行update方法. 造成 cpu 上升. 可以看到随便一个 echarts 图形, 什么都不操作, cpu 都在10%以上.

All 6 comments

这个只是注册浏览器每一帧的回调,有需要绘制的时候重绘,其余时候只是通过一个 flag 判断是否需要重绘,没有什么开销,c3.js 没有是因为它是 svg 的,刷新重绘都是浏览器调度的

这个 issues 还是存在的.
在 echarts 图形初始渲染的时候, self._running 一直是 true, 所以requestAnimationFrame这个函数一直在 执行update方法. 造成 cpu 上升. 可以看到随便一个 echarts 图形, 什么都不操作, cpu 都在10%以上.

@pissang requestAnimationFrame本身可能没什么开销, 但是 初始化图形的时候, 并没有 stop 动画, self._running 一直为 true, 就造成 图形一直在 update.

不应该被关掉呀,明显存在吃cpu的情况

大佬们看看这个bug呗.还是有..

这不是bug把,这个函数本身就是会一直调的

发自我的iPhone

------------------ 原始邮件 ------------------
发件人: Dushusir <[email protected]>
发送时间: 2020年4月26日 23:07
收件人: apache/incubator-echarts <[email protected]>
抄送: Subscribed <[email protected]>
主题: 回复:[apache/incubator-echarts] 无任何操作的情况下,requestAnimationFrame() 被无限的调用 (#2886)

大佬们看看这个bug呗.还是有..


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

Was this page helpful?
0 / 5 - 0 ratings