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
gh-94841: Ensure arena_map_get() is inlined in PyObject_Free() #94842
Conversation
|
3.11b3+ PGO (2022-07-09 7b5737a)
Faster PyObject_Free() with v143Slower PyObject_Free() with v143
|
|
To backport to 3.10, we can just use Another, more dramatic, option would be to disable the obmalloc radix tree on WIndows. E.g. |
|
Thanks @neonene for the PR, and @gvanrossum for merging it |
…ythonGH-94842) (cherry picked from commit 9b3f779) Co-authored-by: neonene <53406459+neonene@users.noreply.github.com>
|
GH-94862 is a backport of this pull request to the 3.11 branch. |
|
I don’t care much about the 3.10 backport, but feel free to do more research! It looks like the compiler matters more than the processor here. |
) (cherry picked from commit 9b3f779) Co-authored-by: neonene <53406459+neonene@users.noreply.github.com>
|
@nascheme Do you want to look more into your fixes, either the 3.10-specific way to force inlining or disabling the radix tree on Windows? |
…Free() (pythonGH-94842) Co-authored-by: Neil Schemenauer <nas-github@arctrix.com> (cherry picked from commit d0850aa170580b494beda030a94fb04254e4acbc) Co-authored-by: neonene <53406459+neonene@users.noreply.github.com>
|
I made an attempt at backporting (GH-94868), not sure I did it right though. Using |


NOTE: This patch cannot be beckported to 3.10, in which
Py_ALWAYS_INLINEmacro is not introduced.