Comments (4)
ZingChart utilizes canvas, so would be interesting to add to the benchmark.
will do!
Also, I noticed Highcharts was listed. I think it'd be interesting benchmark it with the boost module as well.
it uses it already [1]. i based it on one of the boost examples, but maybe more param tweaking [2] can make it faster. i didn't spend additional time trying to figure it out. feel free to contribute any improvements!
[1] https://github.com/leeoniya/uPlot/blob/master/bench/Highcharts.html#L14
[2] https://www.highcharts.com/docs/advanced-chart-features/boost-module
from uplot.
added ZingChart based on [1], i'll add the interaction metric later (need to tweak config to display live values and hovered datapoints), but i don't expect any surprises.
it should be noted that the article makes reference to an evenly-spaced-data optimization and the bench dataset is mostly evenly spaced since the sampling interval in cron was 1m (but it could be +/- 1s in final timestamps). however, uPlot's performance does not depend on the data being evenly spaced whatsoever, so i chose not to use this "optimization" in the bench.
if you're curious how that version performed: 1310ms render, 1500ms total, 96.8 MB mem.
[1] https://blog.zingchart.com/charts-with-time-series-data/
from uplot.
That's great! Thanks so much for adding the additional benchmarks!
I'm going to send some improvements to the Chart.js benchmark later. How do you do the timings? Do you just look in the Chrome developer tools performance tab? Or should I just send the improvements and let you update the timings?
from uplot.
I'm going to send some improvements to the Chart.js benchmark later.
nice, looking forward to it!
How do you do the timings? Do you just look in the Chrome developer tools performance tab?
Render (167k)
is taken from the readout ofconsole.timeEnd('chart');
[1]. I ensure that there's no async magic happening and that timeEnd event visually coincides with the last paint event.Total
&JS Heap
is a Chrome devtools perf timeline recording of a page reload.Interact (10s)
is me furiously tracing a horizontal figure 8 across the width/height of each chart with live label & hovered datapoint updates enabled...for ~10s.
I try to do a few runs and force garbage collection between them to get the most representative/fair numbers. It's not terribly scientific, but with such large deltas between libs it doesn't really need to be.
Or should I just send the improvements and let you update the timings?
i'm sure you'll be interested in the timings on your own machine relative to some baseline. but obviously i'll re-run them on the same machine as the others either way.
[1] https://github.com/leeoniya/uPlot/blob/master/bench/uPlot.html#L124
from uplot.
Related Issues (20)
- add new "justify" scale type
- custom markers HOT 1
- the tooltip stick to points
- Tooltip issue #question
- fix mouse interaction performance for 2,000 series HOT 1
- base 2 ranging and ticks without log scale
- Secondary sync demos not working HOT 6
- Ranger selection does not trigger mousemove event. HOT 5
- Click event on chart is 'destroying' existing selection
- Is it possible to create stacked bar charts that are grouped by year ? HOT 2
- what would be an approach to make groups of series? HOT 1
- Can I hide an axis but not the ortho lines? HOT 5
- Solution for adding padding within the canvas itself? HOT 2
- Setting Legend Markers using Paths HOT 1
- Seeking guidance on creating a dynamic chart with the following features HOT 2
- how do set bar with in uplot HOT 1
- Best practice to avoid clipped axis ticks' labels HOT 2
- Can we render Multicolor Bar charts(each bar has different color) using uPlot? HOT 5
- lineInterpolation not working HOT 1
- Set data array read position in options to enable circular buffered data HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from uplot.