Closed P403n1x87 closed 1 year ago
Patch coverage: 100.00%
and project coverage change: +0.53%
:tada:
Comparison is base (
068dd8b
) 68.14% compared to head (c43198d
) 68.68%.
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
Running Austin benchmarks with Python 3.10.13
Comparison of dev against 3.5.0.
The following scenarios show a statistically significant difference in performance between the two versions.
Sample Rate | Saturation | Error Rate | Sampling Speed | |
---|---|---|---|---|
CPU time [sampling interval: 100] | :yellow_circle: | :green_circle: | :yellow_circle: | :yellow_circle: |
RSA keygen [sampling interval: 10] | :red_circle: | :yellow_circle: | :yellow_circle: | :red_circle: |
RSA keygen [sampling interval: 100] | :yellow_circle: | :yellow_circle: | :green_circle: | :yellow_circle: |
Description of the Change
We add support for sub-interpreters. With this change we loop over the linked list of sub-interpreters and sample them in turn. With PEP 554 and PEP 684, we foresee a potential growing interest into sub-interpreters. Therefore we add support for sub-interpreters to Austin to make it future-proof, at no extra performance cost for the single interpreter scenario.
Extra sub-interpreter identification information is carried by the Stack MOJO event. For the collapsed stack format, we add a prefix to the thread identifier, which represents the sub-interpreter ID. The main interpreter is identified by the 0 ID.
Alternate Designs
None considered.
Regressions
None expected
Verification Process
Added an extra test case to verify that we get the extra sub-interpreter identification information.