Avoid using Bbox machinery in Path.get_extents; special case polylines.#17995
Merged
jklymak merged 1 commit intomatplotlib:masterfrom Jul 21, 2020
Merged
Avoid using Bbox machinery in Path.get_extents; special case polylines.#17995jklymak merged 1 commit intomatplotlib:masterfrom
jklymak merged 1 commit intomatplotlib:masterfrom
Conversation
jklymak
approved these changes
Jul 21, 2020
Member
jklymak
left a comment
There was a problem hiding this comment.
Looks good to me. Any reason bbox.update_from_data_xy is so slow?
Contributor
Author
|
Because it constructs general path objects and then iterates over it using overly general mechanisms, I guess. |
update_from_data_xy is much slower than needed; we can use plain numpy instead. For polylines, we can completely skip the bezier handling for even more speedup.
dopplershift
approved these changes
Jul 21, 2020
Member
|
As a performance regression fix, should this be backported to 3.3.1? |
Member
|
I think the regression has been there since 3.0.0, so not urgent, unless there is something more than the tight_bbox PR that added to the slowdown. |
Member
|
Further discussion on #17974 says this was introduced in 3.3.0, so maybe we should backport this? |
Member
|
@meeseeksdev backport to v3.3.x |
meeseeksmachine
pushed a commit
to meeseeksmachine/matplotlib
that referenced
this pull request
Aug 5, 2020
…extents; special case polylines.
QuLogic
added a commit
that referenced
this pull request
Aug 5, 2020
…995-on-v3.3.x Backport PR #17995 on branch v3.3.x (Avoid using Bbox machinery in Path.get_extents; special case polylines.)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
update_from_data_xy is much slower than needed; we can use plain numpy
instead. (This speeds up #17974 another ~30-40% on top of #17994.)
For polylines, we can completely skip the bezier handling for even more
speedup. (This fixes the performance regression.)
PR Summary
PR Checklist