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.
What are you trying to accomplish?
While working on
ciso8601
, I discovered that things run a lot faster if you define your methods asMETH_O
(i.e., method with a single object argument) you can skip the overhead ofPyArg_ParseTuple
.What approach did you choose and why?
Switched the instances of
METH_VARGS
to beMETH_O
instead.The impact of these changes
parse_iso8601
master
This PR shaves ~48 ns (17%) off the runtime of
parse_iso8601
.Testing
Here's the script I used.
What should reviewers focus on?
I didn't bother supporting Python 2.7 in these changes. It's fairly easy to do so, but I noticed that pendulum dropped support for Python < 3.7, so I didn't bother.
I'm not sure why v2.1.2 performed so well in this test. I didn't look into it. 🤷
Pull Request Check List
Added tests for changed code.Updated documentation for changed code.