Closed P403n1x87 closed 3 weeks ago
Attention: Patch coverage is 78.78788%
with 14 lines
in your changes missing coverage. Please review.
Project coverage is 69.35%. Comparing base (
741d378
) to head (05875d0
). Report is 2 commits behind head on devel.
Files with missing lines | Patch % | Lines |
---|---|---|
src/py_proc.c | 73.46% | 7 Missing and 6 partials :warning: |
src/version.h | 90.90% | 0 Missing and 1 partial :warning: |
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
Running Austin benchmarks with Python 3.10.15
Comparison of dev against 3.6.0.
The following scenarios show a statistically significant difference in performance between the two versions.
Sample Rate | Saturation | Error Rate | Sampling Speed | |
---|---|---|---|---|
Wall time [sampling interval: 10] | :yellow_circle: | :green_circle: | :yellow_circle: | :yellow_circle: |
Multiprocess wall time [sampling interval: 10] | :green_circle: | :yellow_circle: | :yellow_circle: | :yellow_circle: |
Multiprocess wall time [sampling interval: 100] | :yellow_circle: | :red_circle: | :yellow_circle: | :yellow_circle: |
Description of the Change
We add support for CPython 3.13. This new version introduces a data structure designed for easily exposing the required field offsets to out-of-process tools like Austin, via the ABI. We adapt the coding to allow integrating with this new structure.
We currently limit testing to the CPython 3.13 version with the GIL. No testing has currently been done with either the free-threaded version, nor with the new JIT.
Alternate Designs
N.A.
Regressions
There are slim chances that the current approach taken fails under certain circumstances. That is because the new approach would require allocating memory for the Python data structures at runtime, as they are no longer known at compile time. This has been done for some of the more critical structures, but for others we are still relying on the size of the same structures from previous versions. There are no guarantees that this would work.
Verification Process
Existing test suite extended to Python 3.13.