-
Notifications
You must be signed in to change notification settings - Fork 19.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Bug] setOption took a long time. And block UI process. #17641
Comments
30ms is acceptable time and should not be noticable to users. Do you call |
@JinJianQi Please provide a demo for the issue either with Official Editor, CodePen, CodeSandbox or JSFiddle. |
@Ovilia Hi~ I find that when the value have a big object, the setOption will take longer time. This is an Online demo to reproduce. https://codesandbox.io/s/confident-shockley-2t1e7n?file=/src/index.js There is about 1000 x 50 values. And each item has a large Something like this:
Through the Performance tab of ChromeDevTool, I find the I think there must be some deepClone processes? Is there any way not to clone ? |
In my case, I have a |
This issue has been automatically marked as stale because it did not have recent activity. It will be closed in 7 days if no further activity occurs. If you wish not to mark it as stale, please leave a comment in this issue. |
#17656 was also closed. The open question is: is there a reason to clone? I'm working with Apache Arrow data. Apache Arrow is a portable format for storing column-oriented data, allowing data to be shared as-is between various systems and language runtimes. It enables zero-copy query processing over large amounts of loaded data. I'm trying to avoid pre-processing the data. I'm not expecting echarts to support arrow tables, but I'm able to use object proxies that translate between the two. But in the end everything is getting cloned, affecting both performance and memory. zrender's clone function states "Instance of user defined class will be cloned to a plain object, without properties in prototype.". There is also no way to customise |
If you have a lot of charts on a page and they all update at the same time, it blocks for ~1s sometimes. Even if nothing is updated, just calling |
|
Version
5.3.3
Link to Minimal Reproduction
No response
Steps to Reproduce
setOption took a long time.
I think maybe there are some diff process need to take some time. So, is there any way to send these merge processes to a worker?
Current Behavior
setOption took maybe
30ms
. And block the UI process.Expected Behavior
setOption don't block the UI process.
Environment
Any additional comments?
No response
The text was updated successfully, but these errors were encountered: