While the various frame and debugger PEPs that are open offer a better solution to this, they might not be accepted for 3.11.
So I'd like to revisit this.
Removing the calls to `PyFrame_FastToLocals` and friends cuts the overhead of tracing down a lot. A *lot*.
Using Fabio's example I get the following slowdowns:
No calls to PyFrame_FastToLocals`: x10
Main branch with one local variable: x16
Main branch with six locals variables: x50
This is quite a compelling reason to remove the calls to `PyFrame_FastToLocals`.
The questions is "what will we break doing this"?
All the tests pass, so that seems promising.
Ned, how would this impact coverage.py? |