Skip to content

PyCode_GetCode could be faster #93382

Closed
@Fidget-Spinner

Description

@Fidget-Spinner

This potentially affects tools like coverage.py. It also means anything using co_code in CPython frequently is significantly slower. Note that pre-3.11, most code would assume this operation is O(1), so it's probably called more often than we expect.

We should lazily initialise a hidden _co_code field and cache it there. Currently it creates a fresh bytes object on each co_code access. This is at best O(n).

Metadata

Metadata

Assignees

No one assigned

    Labels

    3.12only security fixesinterpreter-core(Objects, Python, Grammar, and Parser dirs)performancePerformance or resource usage

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions