-
-
Notifications
You must be signed in to change notification settings - Fork 32.2k
bpo-26110: Document CALL_METHOD_KW
#26159
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
bpo-26110: Document CALL_METHOD_KW
#26159
Conversation
@pablogsal Can I trouble you for a review too please? Thanks! |
Anytime ;) |
changes which avoid creating bound method instances. Previously, this | ||
optimization was applied only to method calls with purely positional | ||
arguments. | ||
(Contributed by Ken Jin and Mark Shannon in :issue:`26110`, based on ideas |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is the issue correct? In https://bugs.python.org/issue26110 I don't see any PR for this
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, it didn't appear for some reason, there was some recent discussion about other issues having the same problem https://mail.python.org/archives/list/python-committers@python.org/thread/M2Z3WSJ4SGGH2GQ7D5NELAZSD3PECG7Q/ .
Co-authored-by: Pablo Galindo <Pablogsal@gmail.com>
Doc/whatsnew/3.11.rst
Outdated
@@ -99,6 +99,17 @@ Optimizations | |||
almost eliminated when no exception is raised. | |||
(Contributed by Mark Shannon in :issue:`40222`.) | |||
|
|||
* Method calls with keywords are now up to 20% faster due to bytecode |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we have a pyperformance run for this? I only found your comment here:
but I don't see the full run with LTO/PGO. This is important as normally we report 20% faster based on the pyperformance run, not for individual microbenchs.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I ran pyperformance with LTO+PGO and saw no change because pyperformance code barely uses method calls with keywords. That entry is taken from the whats new in python 3.7 https://docs.python.org/3/whatsnew/3.7.html#optimizations and is also the result of a microbench. Maybe I should just remove that line :(?
Recently I've been thinking that pyperformance doesn't really have enough object-oriented benchmarks. Maybe I can look into adding some.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe take a look at the pyston benchmarks? https://github.com/pyston/python-macrobenchmarks
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That entry is taken from the whats new in python 3.7 https://docs.python.org/3/whatsnew/3.7.html#optimizations and is also the result of a microbench.
Maybe I am missing something, but we did a pyperformance run for that:
https://bugs.python.org/msg282622
Maybe I should just remove that line :(?
No, but surely clarify that a bit better: mention that is on a microbenchmark.
Recently I've been thinking that pyperformance doesn't really have enough object-oriented benchmarks. Maybe I can look into adding some.
That's a good idea. Meke sure to sync also with @vstinner
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That entry is taken from the whats new in python 3.7 https://docs.python.org/3/whatsnew/3.7.html#optimizations and is also the result of a microbench.
Maybe I am missing something, but we did a pyperformance run for that:
Gah, I just realised my message to you was misworded. What I meant was "That entry is taken from the whats new in python 3.7 https://docs.python.org/3/whatsnew/3.7.html#optimizations and the number I provided is the result of a microbench.". Sorry.
Thanks @Fidget-Spinner ! |
@pablogsal thanks for the reviews and merge :). |
https://bugs.python.org/issue26110