perf: Use write_geos_geometry() for makevalid, minimumclearance_line, polygonize, simplifypreservetopology, and overlays #502
+32
−30
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.
This is the second remaining follow-up to #476. The first was #493. This PR replaces the remaining instances and presents their performance improvements.
Additionally, this PR adds some missing code that is needed to bench aggregates in
geos-functions.rs, including a new test forst_polygonize_agg. I didn't find I could actually optimize that function, but I decided to keep the code that added the bench for it for future convenience.Here are the criterion benchmark results.
st_makevalid (-20% and -45% reduction)
st_minimumclearanceline (-4.5% and 0% reduction)
st_polygonize (-8% and -5% reduction)
st_simplifypreservetopology (-3% and 0% reduction)
Overlays:
st_intersection (-16.5% and -14.5% reduction)
st_union (-33% and -75% reduction)
st_difference (-7.5% and -6% reduction)
st_symdifference (-11.5% and -74% reduction)