Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #346
There are two main "innovations" here:
I took screenshots of
tests/dense-fill.html
both with and without the optimization. There were a few differences with the antialiasing along the edges, but nothing visually distinguishable.The performance improvement can be dramatic. For a 10,000 point series in a 480x320 chart (i.e. the benchmark), I see a drop from ~700ms/draw → 25ms/draw, which is roughly in line with the performance w/o
fillGraph
set.The speedup is entirely explained by the number of line segments being sent to the canvas.
tests/dense-fill.html
draws a 10,000 point series on an 800px wide canvas. Before, it issued 40,000moveTo
andlineTo
calls. After, it issues ~1490.