Giter VIP home page Giter VIP logo

Comments (4)

leeoniya avatar leeoniya commented on May 11, 2024

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.

leeoniya avatar leeoniya commented on May 11, 2024

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.

benmccann avatar benmccann commented on May 11, 2024

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.

leeoniya avatar leeoniya commented on May 11, 2024

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 of console.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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.