Don't recalculate Geometries at each render #222
Closed
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.
With every re-render, geometries are recalculated even though paths have not changed. Memoizing the geometry building method helps with that.
It has no perceptible performance impact the initial render, even with progressive rendering. However, the next renders are significantly faster and we can notice.
There are downsides of memoizing as it requires more memory. It should be an option exposed, because it really depends on the use case. If the same model has to be re-rendered multiple times, memoization is great. If only one render is needed per gcode file, cache should be off. I am not sure what the default should be.
What do you think? Should this PR include the option? What should be the default?