-
-
Notifications
You must be signed in to change notification settings - Fork 433
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
Performance of coverage.py under 3.11 #1287
Comments
Can you say more about why you are concerned? Has something slowed down? What is it you would like me to do? |
Check python/cpython#29729 (comment) for instance |
Nothing for now, but thanks for the offer. |
I'm seeing Project 1 - mostly unit tests
Project 2 - mostly functional tests
Edit: Some test environments had |
@cdce8p The most likely cause of a slowdown that large is using the Python tracer instead of the CTracer. Can you add |
Thanks for the quick reply! I checked all environments and it looks like some were still using The times are much better now, however that doesn't resolve all issues. For the mostly unit test suit, I'm still seeing a > Debug log (old) - with 6.3.2
> Debug log (new) - with 6.3.3
|
@markshannon @pablogsal I am also seeing a problem with coverage.py being 2x slower on 3.11 than on 3.10:
|
Can you provide a reproducer that we can play with, as possible with the minimum set of dependencies possible? |
Here are the same numbers in a more comprehensible form:
|
Here is how I ran the tests. You can adjust the details if you want.
It should do a good job making virtualenvs, installing coverage, and so on all by itself, though I'll be interested if you run into problems. If you want to change the parameters of the run, edit lines 348-369. |
@nedbat Can you also open an issue ok CPython and subscribe me so we can track this "officially"? Thanks in advance! |
@pablogsal I'm not sure how to subscribe you, but I pinged you, maybe that's what you meant: python/cpython#93516 |
Thanks @nedbat 🙏 I marked the bug as release blocker |
I opened #1394, which I think should help at least a little. Another idea, probably not particular to 3.11: Would it make sense to cache the latest result of |
That call only happens during a CALL event, so I'm not sure it would pay off, but I can try it. |
I tried this out in this pull request: #1401 It seemed to only improve things by about .5% |
We* are concerned about what 3.11 is doing to the performance of coverage.py.
This is more of a CPython issue, but I'm hoping that the coverage.py folks can provide some meaningful data about performance.
CPython issue: https://bugs.python.org/issue45923
* @markshannon and @pablogsal
The text was updated successfully, but these errors were encountered: