Skip to content

Cache Node.__hash__ from the immutable nodeid#5

Open
adamtheturtle wants to merge 1 commit into
mainfrom
adamtheturtle/faster-collect-node-hash
Open

Cache Node.__hash__ from the immutable nodeid#5
adamtheturtle wants to merge 1 commit into
mainfrom
adamtheturtle/faster-collect-node-hash

Conversation

@adamtheturtle

@adamtheturtle adamtheturtle commented Jul 17, 2026

Copy link
Copy Markdown
Owner

Summary

  • Cache Node.__hash__ at construction from the immutable _nodeid.

Timing (pytest's own testing/ suite)

Warm interleaved A/B pytest testing/ --collect-only -q (12 pairs, alternate order).

Median
main 0.695s
This change 0.580s
Delta +0.115s (+16.5%)

Collected 4286 tests each run.

Note: this suite is only ~4k tests / ~0.5–1.5s collect, so single micro-optimizations are often within run-to-run noise. Larger synthetic suites show clearer wins.

Test plan

  • Existing node / collection tests

__hash__ is hot during collection (reordering, set/dict membership); nodeid
never changes after construction.

Co-authored-by: Cursor <cursoragent@cursor.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant