GH-90117: Check for list
and tuple
before MappingView
in pprint
#135779
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.
GH-30135 added an expensive ABC subclass check for an uncommon case (
MappingView
) before fast subclass checks for 2 common cases (list
andtuple
), resulting in a ~10% performance regression for ourpprint
benchmarks. There's also some evidence that this may have also made our PGO profile worse on some builds, sincetest_pprint
is part of the profiling task (so we're spending a good chunk of that time hitting the newly-added ABC subclass-checking machinery).This just switches the order of the branches so the cheap, common case is checked before the expensive, uncommon one.