apache / apache/echarts

[Bug] Line Chart Performance Optimization for Real-Time Time-Series Data does not seem as advertised

Open
#21,075 2 comments 0 reactions 0 assignees View on GitHub
bug en pending
Dominant language
TypeScript
Stars
67.3k
Forks
19.8k
Avg merge
15h 17m
Merged PRs (30d)
5

Description

### Version

5.5.1

### Link to Minimal Reproduction

https://codepen.io/atmgrifter00/pen/VYLReJg

### Steps to Reproduce

When running the CodePen, be sure to run in a 'Live view' (new tab). Note that I have tried several different ways of giving the data to echarts (via `dataset`, via `TypedArray`s), and all have resulted in worse performance than what is present in the CodePen. Setting `sampling` can improve performance, but is ultimately a lossy rendering of the data, and still doesn't meet performance goals.

Note that in the example CodePen, all of the data is pre-generated, and not generated per update.

### Current Behavior

Plotting 80K samples across 4 channels (4 plots at 20K samples each), should render faster than 30 fps, and it's closer to 10fps (ultimately under 1M samples per second).

This seems not representative of what's listed in the v5 release docs:

![Image](https://github.com/user-attachments/assets/41593dd2-ee1a-4888-afa1-77a1c7732c9c)

### Expected Behavior

I would expect echarts could achieve similar or better performance than [flot](https://github.com/flot/flot). However, flot [can currently render 80K samples per update at over 100fps](https://codepen.io/atmgrifter00/pen/JodzXMV), upwards of 10M samples per second! Further, it should be able to match flot without rendering in a lossy manner (as flot does not).

### Environment

```markdown
- OS:
- Browser:
- Framework:
```

### Any additional comments?

_No response_

Contributor guide

Open the contributing guide

Research direction

Start by running the linked ECharts CodePen in Live view and compare its frame rate with the linked Flot reproduction, using the reported 80K samples across four channels. Review the v5 release documentation claims and identify whether ECharts can meet the stated non-lossy performance target; done means documenting or correcting the discrepancy with a reproducible result.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
data-visualization, performance
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.