PYTHON-5679 Optimize ObjectId.__str__()
#2657
Merged
+1
−2
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.
Changes in this PR
Like #2656, I spotted this function taking ~0.9% of request time in a project using mongoengine.
bytes.hex()was added in Python 3.5 and does the same asbinascii.hexlify(...).decode()but faster, so I've replaced it here. (Thebinascii.hexlify()docs also now point tobytes.hex()as a faster alternative.)Test Plan
Benchmarked again using
richbenchwith the below script.bench_objectid_str.pyResults show a ~1.4x speedup:
Checklist
Checklist for Author
Checklist for Reviewer