Skip to content

Move stats for the method cache into the Py_STAT machinery - #100255

Merged
markshannon merged 4 commits into
python:mainfrom
faster-cpython:type-cache-stats
Dec 15, 2022
Merged

Move stats for the method cache into the Py_STAT machinery#100255
markshannon merged 4 commits into
python:mainfrom
faster-cpython:type-cache-stats

Conversation

@markshannon

Copy link
Copy Markdown
Member

Resulting table looks like this:

Object stats

CountRatio
Allocations from freelist4,589,260,80846.0%
...
Method cache hits1,525,324,505
Method cache misses69,170,546
Method cache collisions73,503,400
Method cache dunder hits2,066,830,615
Method cache dunder misses4,345,814

@netlify

netlifyBot commented Dec 14, 2022

Copy link
Copy Markdown

Deploy Preview for python-cpython-preview ready!

NameLink
🔨 Latest commit6d6aa01
🔍 Latest deploy loghttps://app.netlify.com/sites/python-cpython-preview/deploys/639a222a34381700086655dd
😎 Deploy Previewhttps://deploy-preview-100255--python-cpython-preview.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site settings.

@carljmcarljm left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Comment threadObjects/typeobject.c
Comment on lines +4174 to +4175
OBJECT_STAT_INC_COND(type_cache_misses, !is_dunder_name(name));
OBJECT_STAT_INC_COND(type_cache_dunder_misses, is_dunder_name(name));

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I assume there's no user of these stats who will care that the definition of a "miss" now includes collisions whereas before it excluded collisions? Obviously the same information is derivable either way.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The old stats were only available if MCACHE_STATS was defined, which could only be done by editing the source or build. There is no configure option. So, I don't see how there can be a user.

@markshannon
markshannon merged commit 48e352a into python:mainDec 15, 2022
carljm added a commit to carljm/cpython that referenced this pull request Dec 16, 2022
* main:
Improve stats presentation for calls. (pythonGH-100274)
Better stats for `LOAD_ATTR` and `STORE_ATTR` (pythonGH-100295)
pythongh-81057: Move the Cached Parser Dummy Name to _PyRuntimeState (python#100277)
Document that zipfile's pwd parameter is a `bytes` object (python#100209)
pythongh-99767: mark `PyTypeObject.tp_watched` as internal use only in table (python#100271)
Fix typo in introduction.rst (python#100266)
pythongh-78997: AttributeError if loading fails in LibraryLoader.__getattr__
pythonGH-100234: Set a default value for random.expovariate() (pythonGH-100235)
Remove uninformative itertools recipe (pythonGH-100253)
pythonGH-99767: update PyTypeObject docs for type watchers (pythonGH-99928)
Move stats for the method cache into the `Py_STAT` machinery (pythonGH-100255)
pythonGH-100222: fix typo _py_set_opocde -> _py_set_opcode (pythonGH-100259)
pythonGH-100000: Cleanup and polish various watchers code (pythonGH-99998)
pythongh-90111: Minor Cleanup for Runtime-Global Objects (pythongh-100254)
@markshannon
markshannon deleted the type-cache-stats branch September 26, 2023 12:53
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@markshannon@carljm@bedevere-bot