-
Couldn't load subscription status.
- Fork 468
fix(profiling): release the GIL for internal mutation #14852
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
Conversation
We make the stack v2 sampler release the GIL when performing internal state mutation that can require acquiring other internal locks. This gives the chance to other threads to make progress while the tracking operations wait on an internal mutex.
ae5f973 to
4f77b58
Compare
|
|
Bootstrap import analysisComparison of import times between this PR and base. SummaryThe average import time from this PR is: 239 ± 3 ms. The average import time from base is: 240 ± 2 ms. The import time difference between this PR and base is: -0.8 ± 0.1 ms. Import time breakdownThe following import paths have shrunk:
|
Performance SLOsComparing candidate fix/profiler-release-gil-internal-mutation (c19cba2) with baseline main (5a3d6bd) 📈 Performance Regressions (1 suite)📈 iastaspects - 118/118✅ add_aspectTime: ✅ 0.415µs (SLO: <10.000µs 📉 -95.8%) vs baseline: +2.2% Memory: ✅ 38.083MB (SLO: <39.000MB -2.4%) vs baseline: +4.9% ✅ add_inplace_aspectTime: ✅ 0.408µs (SLO: <10.000µs 📉 -95.9%) vs baseline: -0.2% Memory: ✅ 37.650MB (SLO: <39.000MB -3.5%) vs baseline: +3.7% ✅ add_inplace_noaspectTime: ✅ 0.317µs (SLO: <10.000µs 📉 -96.8%) vs baseline: +0.2% Memory: ✅ 38.103MB (SLO: <39.000MB -2.3%) vs baseline: +4.8% ✅ add_noaspectTime: ✅ 0.281µs (SLO: <10.000µs 📉 -97.2%) vs baseline: ~same Memory: ✅ 38.083MB (SLO: <39.000MB -2.4%) vs baseline: +4.8% ✅ bytearray_aspectTime: ✅ 1.340µs (SLO: <10.000µs 📉 -86.6%) vs baseline: +1.0% Memory: ✅ 38.063MB (SLO: <39.000MB -2.4%) vs baseline: +4.8% ✅ bytearray_extend_aspectTime: ✅ 1.456µs (SLO: <10.000µs 📉 -85.4%) vs baseline: +1.0% Memory: ✅ 38.063MB (SLO: <39.000MB -2.4%) vs baseline: +5.0% ✅ bytearray_extend_noaspectTime: ✅ 0.612µs (SLO: <10.000µs 📉 -93.9%) vs baseline: -0.3% Memory: ✅ 38.004MB (SLO: <39.000MB -2.6%) vs baseline: +4.9% ✅ bytearray_noaspectTime: ✅ 0.483µs (SLO: <10.000µs 📉 -95.2%) vs baseline: -0.4% Memory: ✅ 38.063MB (SLO: <39.000MB -2.4%) vs baseline: +4.9% ✅ bytes_aspectTime: ✅ 1.284µs (SLO: <10.000µs 📉 -87.2%) vs baseline: -0.8% Memory: ✅ 38.103MB (SLO: <39.000MB -2.3%) vs baseline: +5.0% ✅ bytes_noaspectTime: ✅ 0.491µs (SLO: <10.000µs 📉 -95.1%) vs baseline: -0.6% Memory: ✅ 38.103MB (SLO: <39.000MB -2.3%) vs baseline: +5.0% ✅ bytesio_aspectTime: ✅ 1.362µs (SLO: <10.000µs 📉 -86.4%) vs baseline: ~same Memory: ✅ 38.063MB (SLO: <39.000MB -2.4%) vs baseline: +5.0% ✅ bytesio_noaspectTime: ✅ 0.493µs (SLO: <10.000µs 📉 -95.1%) vs baseline: -0.7% Memory: ✅ 38.103MB (SLO: <39.000MB -2.3%) vs baseline: +4.9% ✅ capitalize_aspectTime: ✅ 0.733µs (SLO: <10.000µs 📉 -92.7%) vs baseline: -1.0% Memory: ✅ 37.965MB (SLO: <39.000MB -2.7%) vs baseline: +4.5% ✅ capitalize_noaspectTime: ✅ 0.435µs (SLO: <10.000µs 📉 -95.6%) vs baseline: +0.5% Memory: ✅ 38.103MB (SLO: <39.000MB -2.3%) vs baseline: +4.8% ✅ casefold_aspectTime: ✅ 0.732µs (SLO: <10.000µs 📉 -92.7%) vs baseline: -1.3% Memory: ✅ 38.083MB (SLO: <39.000MB -2.4%) vs baseline: +4.9% ✅ casefold_noaspectTime: ✅ 0.370µs (SLO: <10.000µs 📉 -96.3%) vs baseline: ~same Memory: ✅ 38.044MB (SLO: <39.000MB -2.5%) vs baseline: +4.7% ✅ decode_aspectTime: ✅ 0.722µs (SLO: <10.000µs 📉 -92.8%) vs baseline: -0.2% Memory: ✅ 38.083MB (SLO: <39.000MB -2.4%) vs baseline: +4.9% ✅ decode_noaspectTime: ✅ 0.420µs (SLO: <10.000µs 📉 -95.8%) vs baseline: +0.3% Memory: ✅ 38.063MB (SLO: <39.000MB -2.4%) vs baseline: +4.7% ✅ encode_aspectTime: ✅ 0.708µs (SLO: <10.000µs 📉 -92.9%) vs baseline: -0.7% Memory: ✅ 38.063MB (SLO: <39.000MB -2.4%) vs baseline: +4.7% ✅ encode_noaspectTime: ✅ 0.400µs (SLO: <10.000µs 📉 -96.0%) vs baseline: +0.5% Memory: ✅ 38.063MB (SLO: <39.000MB -2.4%) vs baseline: +4.9% ✅ format_aspectTime: ✅ 3.564µs (SLO: <10.000µs 📉 -64.4%) vs baseline: +5.9% Memory: ✅ 38.122MB (SLO: <39.000MB -2.3%) vs baseline: +5.0% ✅ format_map_aspectTime: ✅ 4.094µs (SLO: <10.000µs 📉 -59.1%) vs baseline: 📈 +12.2% Memory: ✅ 38.063MB (SLO: <39.000MB -2.4%) vs baseline: +4.9% ✅ format_map_noaspectTime: ✅ 0.770µs (SLO: <10.000µs 📉 -92.3%) vs baseline: -0.3% Memory: ✅ 38.044MB (SLO: <39.000MB -2.5%) vs baseline: +4.8% ✅ format_noaspectTime: ✅ 0.600µs (SLO: <10.000µs 📉 -94.0%) vs baseline: +0.5% Memory: ✅ 38.024MB (SLO: <39.000MB -2.5%) vs baseline: +4.7% ✅ index_aspectTime: ✅ 0.357µs (SLO: <10.000µs 📉 -96.4%) vs baseline: +0.6% Memory: ✅ 38.083MB (SLO: <39.000MB -2.4%) vs baseline: +4.8% ✅ index_noaspectTime: ✅ 0.277µs (SLO: <10.000µs 📉 -97.2%) vs baseline: -1.2% Memory: ✅ 38.083MB (SLO: <39.000MB -2.4%) vs baseline: +5.0% ✅ join_aspectTime: ✅ 1.397µs (SLO: <10.000µs 📉 -86.0%) vs baseline: -0.5% Memory: ✅ 37.985MB (SLO: <39.000MB -2.6%) vs baseline: +4.6% ✅ join_noaspectTime: ✅ 0.491µs (SLO: <10.000µs 📉 -95.1%) vs baseline: ~same Memory: ✅ 38.024MB (SLO: <39.000MB -2.5%) vs baseline: +4.8% ✅ ljust_aspectTime: ✅ 2.475µs (SLO: <20.000µs 📉 -87.6%) vs baseline: -0.2% Memory: ✅ 38.044MB (SLO: <39.000MB -2.5%) vs baseline: +4.9% ✅ ljust_noaspectTime: ✅ 0.401µs (SLO: <10.000µs 📉 -96.0%) vs baseline: -1.6% Memory: ✅ 38.063MB (SLO: <39.000MB -2.4%) vs baseline: +5.0% ✅ lower_aspectTime: ✅ 2.203µs (SLO: <10.000µs 📉 -78.0%) vs baseline: -1.9% Memory: ✅ 38.063MB (SLO: <39.000MB -2.4%) vs baseline: +4.9% ✅ lower_noaspectTime: ✅ 0.367µs (SLO: <10.000µs 📉 -96.3%) vs baseline: -1.6% Memory: ✅ 38.044MB (SLO: <39.000MB -2.5%) vs baseline: +4.9% ✅ lstrip_aspectTime: ✅ 2.252µs (SLO: <20.000µs 📉 -88.7%) vs baseline: -0.3% Memory: ✅ 38.083MB (SLO: <39.000MB -2.4%) vs baseline: +4.9% ✅ lstrip_noaspectTime: ✅ 0.382µs (SLO: <10.000µs 📉 -96.2%) vs baseline: -1.2% Memory: ✅ 38.083MB (SLO: <39.000MB -2.4%) vs baseline: +5.0% ✅ modulo_aspectTime: ✅ 1.004µs (SLO: <10.000µs 📉 -90.0%) vs baseline: +0.2% Memory: ✅ 38.103MB (SLO: <39.000MB -2.3%) vs baseline: +5.0% ✅ modulo_aspect_for_bytearray_bytearrayTime: ✅ 1.531µs (SLO: <10.000µs 📉 -84.7%) vs baseline: ~same Memory: ✅ 38.083MB (SLO: <39.000MB -2.4%) vs baseline: +4.7% ✅ modulo_aspect_for_bytesTime: ✅ 0.967µs (SLO: <10.000µs 📉 -90.3%) vs baseline: -0.9% Memory: ✅ 38.063MB (SLO: <39.000MB -2.4%) vs baseline: +4.9% ✅ modulo_aspect_for_bytes_bytearrayTime: ✅ 1.206µs (SLO: <10.000µs 📉 -87.9%) vs baseline: +1.8% Memory: ✅ 38.044MB (SLO: <39.000MB -2.5%) vs baseline: +4.9% ✅ modulo_noaspectTime: ✅ 0.628µs (SLO: <10.000µs 📉 -93.7%) vs baseline: -0.9% Memory: ✅ 38.083MB (SLO: <39.000MB -2.4%) vs baseline: +4.9% ✅ replace_aspectTime: ✅ 4.838µs (SLO: <10.000µs 📉 -51.6%) vs baseline: +0.8% Memory: ✅ 38.044MB (SLO: <39.000MB -2.5%) vs baseline: +4.7% ✅ replace_noaspectTime: ✅ 0.462µs (SLO: <10.000µs 📉 -95.4%) vs baseline: +0.3% Memory: ✅ 38.122MB (SLO: <39.000MB -2.3%) vs baseline: +5.1% ✅ repr_aspectTime: ✅ 0.909µs (SLO: <10.000µs 📉 -90.9%) vs baseline: ~same Memory: ✅ 38.122MB (SLO: <39.000MB -2.3%) vs baseline: +4.9% ✅ repr_noaspectTime: ✅ 0.417µs (SLO: <10.000µs 📉 -95.8%) vs baseline: +0.9% Memory: ✅ 38.103MB (SLO: <39.000MB -2.3%) vs baseline: +4.9% ✅ rstrip_aspectTime: ✅ 1.904µs (SLO: <20.000µs 📉 -90.5%) vs baseline: -1.4% Memory: ✅ 38.103MB (SLO: <39.000MB -2.3%) vs baseline: +5.0% ✅ rstrip_noaspectTime: ✅ 0.383µs (SLO: <10.000µs 📉 -96.2%) vs baseline: -0.5% Memory: ✅ 38.103MB (SLO: <39.000MB -2.3%) vs baseline: +4.9% ✅ slice_aspectTime: ✅ 0.496µs (SLO: <10.000µs 📉 -95.0%) vs baseline: -0.3% Memory: ✅ 38.103MB (SLO: <39.000MB -2.3%) vs baseline: +4.9% ✅ slice_noaspectTime: ✅ 0.446µs (SLO: <10.000µs 📉 -95.5%) vs baseline: ~same Memory: ✅ 38.103MB (SLO: <39.000MB -2.3%) vs baseline: +4.9% ✅ stringio_aspectTime: ✅ 1.534µs (SLO: <10.000µs 📉 -84.7%) vs baseline: +0.4% Memory: ✅ 38.083MB (SLO: <39.000MB -2.4%) vs baseline: +4.9% ✅ stringio_noaspectTime: ✅ 0.722µs (SLO: <10.000µs 📉 -92.8%) vs baseline: +1.4% Memory: ✅ 38.004MB (SLO: <39.000MB -2.6%) vs baseline: +4.7% ✅ strip_aspectTime: ✅ 2.218µs (SLO: <20.000µs 📉 -88.9%) vs baseline: -0.6% Memory: ✅ 38.083MB (SLO: <39.000MB -2.4%) vs baseline: +4.9% ✅ strip_noaspectTime: ✅ 0.385µs (SLO: <10.000µs 📉 -96.1%) vs baseline: +0.2% Memory: ✅ 38.004MB (SLO: <39.000MB -2.6%) vs baseline: +4.8% ✅ swapcase_aspectTime: ✅ 2.412µs (SLO: <10.000µs 📉 -75.9%) vs baseline: +0.3% Memory: ✅ 38.103MB (SLO: <39.000MB -2.3%) vs baseline: +5.0% ✅ swapcase_noaspectTime: ✅ 0.534µs (SLO: <10.000µs 📉 -94.7%) vs baseline: -0.5% Memory: ✅ 38.044MB (SLO: <39.000MB -2.5%) vs baseline: +4.9% ✅ title_aspectTime: ✅ 2.340µs (SLO: <10.000µs 📉 -76.6%) vs baseline: -0.3% Memory: ✅ 38.024MB (SLO: <39.000MB -2.5%) vs baseline: +4.9% ✅ title_noaspectTime: ✅ 0.500µs (SLO: <10.000µs 📉 -95.0%) vs baseline: -0.9% Memory: ✅ 38.063MB (SLO: <39.000MB -2.4%) vs baseline: +4.7% ✅ translate_aspectTime: ✅ 3.258µs (SLO: <10.000µs 📉 -67.4%) vs baseline: +1.3% Memory: ✅ 38.083MB (SLO: <39.000MB -2.4%) vs baseline: +4.9% ✅ translate_noaspectTime: ✅ 1.040µs (SLO: <10.000µs 📉 -89.6%) vs baseline: +0.3% Memory: ✅ 38.122MB (SLO: <39.000MB -2.3%) vs baseline: +5.0% ✅ upper_aspectTime: ✅ 2.210µs (SLO: <10.000µs 📉 -77.9%) vs baseline: -0.7% Memory: ✅ 38.142MB (SLO: <39.000MB -2.2%) vs baseline: +5.0% ✅ upper_noaspectTime: ✅ 0.368µs (SLO: <10.000µs 📉 -96.3%) vs baseline: -0.6% Memory: ✅ 38.083MB (SLO: <39.000MB -2.4%) vs baseline: +5.0% 🟡 Near SLO Breach (6 suites)🟡 djangosimple - 30/30✅ appsecTime: ✅ 20.511ms (SLO: <22.300ms -8.0%) vs baseline: +0.1% Memory: ✅ 65.512MB (SLO: <67.000MB -2.2%) vs baseline: +4.9% ✅ exception-replay-enabledTime: ✅ 1.344ms (SLO: <1.450ms -7.3%) vs baseline: -0.4% Memory: ✅ 64.660MB (SLO: <67.000MB -3.5%) vs baseline: +4.9% ✅ iastTime: ✅ 20.577ms (SLO: <22.250ms -7.5%) vs baseline: +0.8% Memory: ✅ 65.418MB (SLO: <67.000MB -2.4%) vs baseline: +4.8% ✅ profilerTime: ✅ 15.284ms (SLO: <16.550ms -7.7%) vs baseline: ~same Memory: ✅ 53.654MB (SLO: <54.500MB 🟡 -1.6%) vs baseline: +4.8% ✅ resource-renamingTime: ✅ 20.549ms (SLO: <21.750ms -5.5%) vs baseline: +0.2% Memory: ✅ 65.397MB (SLO: <67.000MB -2.4%) vs baseline: +4.9% ✅ span-code-originTime: ✅ 26.210ms (SLO: <28.200ms -7.1%) vs baseline: ~same Memory: ✅ 67.522MB (SLO: <69.500MB -2.8%) vs baseline: +4.7% ✅ tracerTime: ✅ 20.471ms (SLO: <21.750ms -5.9%) vs baseline: -0.2% Memory: ✅ 65.487MB (SLO: <67.000MB -2.3%) vs baseline: +4.8% ✅ tracer-and-profilerTime: ✅ 21.988ms (SLO: <23.500ms -6.4%) vs baseline: -0.6% Memory: ✅ 66.593MB (SLO: <67.500MB 🟡 -1.3%) vs baseline: +4.8% ✅ tracer-dont-create-db-spansTime: ✅ 19.334ms (SLO: <21.500ms 📉 -10.1%) vs baseline: ~same Memory: ✅ 65.384MB (SLO: <66.000MB 🟡 -0.9%) vs baseline: +4.7% ✅ tracer-minimalTime: ✅ 16.552ms (SLO: <17.500ms -5.4%) vs baseline: -0.2% Memory: ✅ 65.508MB (SLO: <66.000MB 🟡 -0.7%) vs baseline: +4.9% ✅ tracer-nativeTime: ✅ 20.513ms (SLO: <21.750ms -5.7%) vs baseline: ~same Memory: ✅ 71.444MB (SLO: <72.500MB 🟡 -1.5%) vs baseline: +5.0% ✅ tracer-no-cachesTime: ✅ 18.416ms (SLO: <19.650ms -6.3%) vs baseline: -0.2% Memory: ✅ 65.447MB (SLO: <67.000MB -2.3%) vs baseline: +4.8% ✅ tracer-no-databasesTime: ✅ 18.763ms (SLO: <20.100ms -6.7%) vs baseline: +0.3% Memory: ✅ 65.479MB (SLO: <67.000MB -2.3%) vs baseline: +4.8% ✅ tracer-no-middlewareTime: ✅ 20.182ms (SLO: <21.500ms -6.1%) vs baseline: +0.2% Memory: ✅ 65.395MB (SLO: <67.000MB -2.4%) vs baseline: +4.8% ✅ tracer-no-templatesTime: ✅ 20.343ms (SLO: <22.000ms -7.5%) vs baseline: +0.4% Memory: ✅ 65.534MB (SLO: <67.000MB -2.2%) vs baseline: +4.9% 🟡 errortrackingdjangosimple - 6/6✅ errortracking-enabled-allTime: ✅ 18.193ms (SLO: <19.850ms -8.3%) vs baseline: +0.9% Memory: ✅ 65.215MB (SLO: <66.500MB 🟡 -1.9%) vs baseline: +4.9% ✅ errortracking-enabled-userTime: ✅ 18.010ms (SLO: <19.400ms -7.2%) vs baseline: ~same Memory: ✅ 65.225MB (SLO: <66.500MB 🟡 -1.9%) vs baseline: +4.7% ✅ tracer-enabledTime: ✅ 18.075ms (SLO: <19.450ms -7.1%) vs baseline: -0.2% Memory: ✅ 65.225MB (SLO: <66.500MB 🟡 -1.9%) vs baseline: +4.7% 🟡 flasksimple - 18/18✅ appsec-getTime: ✅ 4.569ms (SLO: <4.750ms -3.8%) vs baseline: ~same Memory: ✅ 62.010MB (SLO: <65.000MB -4.6%) vs baseline: +5.0% ✅ appsec-postTime: ✅ 6.569ms (SLO: <6.750ms -2.7%) vs baseline: -0.2% Memory: ✅ 61.951MB (SLO: <65.000MB -4.7%) vs baseline: +4.7% ✅ appsec-telemetryTime: ✅ 4.567ms (SLO: <4.750ms -3.9%) vs baseline: ~same Memory: ✅ 62.030MB (SLO: <65.000MB -4.6%) vs baseline: +4.8% ✅ debuggerTime: ✅ 1.860ms (SLO: <2.000ms -7.0%) vs baseline: -0.3% Memory: ✅ 45.436MB (SLO: <47.000MB -3.3%) vs baseline: +4.9% ✅ iast-getTime: ✅ 1.863ms (SLO: <2.000ms -6.8%) vs baseline: -0.2% Memory: ✅ 42.389MB (SLO: <49.000MB 📉 -13.5%) vs baseline: +4.9% ✅ profilerTime: ✅ 1.912ms (SLO: <2.100ms -9.0%) vs baseline: ~same Memory: ✅ 46.419MB (SLO: <47.000MB 🟡 -1.2%) vs baseline: +4.8% ✅ resource-renamingTime: ✅ 3.379ms (SLO: <3.650ms -7.4%) vs baseline: -0.2% Memory: ✅ 52.239MB (SLO: <53.500MB -2.4%) vs baseline: +4.5% ✅ tracerTime: ✅ 3.364ms (SLO: <3.650ms -7.8%) vs baseline: +0.2% Memory: ✅ 52.258MB (SLO: <53.500MB -2.3%) vs baseline: +5.0% ✅ tracer-nativeTime: ✅ 3.365ms (SLO: <3.650ms -7.8%) vs baseline: +0.2% Memory: ✅ 58.298MB (SLO: <60.000MB -2.8%) vs baseline: +4.9% 🟡 otelspan - 22/22✅ add-eventTime: ✅ 40.999ms (SLO: <47.150ms 📉 -13.0%) vs baseline: +0.3% Memory: ✅ 44.138MB (SLO: <47.000MB -6.1%) vs baseline: +4.9% ✅ add-metricsTime: ✅ 317.201ms (SLO: <344.800ms -8.0%) vs baseline: ~same Memory: ✅ 617.222MB (SLO: <630.000MB -2.0%) vs baseline: +4.8% ✅ add-tagsTime: ✅ 288.224ms (SLO: <314.000ms -8.2%) vs baseline: +0.4% Memory: ✅ 619.004MB (SLO: <630.000MB 🟡 -1.7%) vs baseline: +4.9% ✅ get-contextTime: ✅ 80.800ms (SLO: <92.350ms 📉 -12.5%) vs baseline: -0.1% Memory: ✅ 39.731MB (SLO: <46.500MB 📉 -14.6%) vs baseline: +4.7% ✅ is-recordingTime: ✅ 38.272ms (SLO: <44.500ms 📉 -14.0%) vs baseline: -0.2% Memory: ✅ 43.515MB (SLO: <47.500MB -8.4%) vs baseline: +4.6% ✅ record-exceptionTime: ✅ 58.028ms (SLO: <67.650ms 📉 -14.2%) vs baseline: -0.1% Memory: ✅ 40.151MB (SLO: <47.000MB 📉 -14.6%) vs baseline: +4.9% ✅ set-statusTime: ✅ 44.248ms (SLO: <50.400ms 📉 -12.2%) vs baseline: +0.1% Memory: ✅ 43.610MB (SLO: <47.000MB -7.2%) vs baseline: +4.9% ✅ startTime: ✅ 37.470ms (SLO: <43.450ms 📉 -13.8%) vs baseline: -0.2% Memory: ✅ 43.561MB (SLO: <47.000MB -7.3%) vs baseline: +4.9% ✅ start-finishTime: ✅ 82.725ms (SLO: <88.000ms -6.0%) vs baseline: +0.5% Memory: ✅ 34.583MB (SLO: <46.500MB 📉 -25.6%) vs baseline: +5.0% ✅ start-finish-telemetryTime: ✅ 83.990ms (SLO: <89.000ms -5.6%) vs baseline: ~same Memory: ✅ 34.583MB (SLO: <46.500MB 📉 -25.6%) vs baseline: +5.0% ✅ update-nameTime: ✅ 39.246ms (SLO: <45.150ms 📉 -13.1%) vs baseline: +0.2% Memory: ✅ 43.937MB (SLO: <47.000MB -6.5%) vs baseline: +4.8% 🟡 packagesupdateimporteddependencies - 24/24✅ import_manyTime: ✅ 155.100µs (SLO: <170.000µs -8.8%) vs baseline: -0.4% Memory: ✅ 37.579MB (SLO: <38.500MB -2.4%) vs baseline: +5.7% ✅ import_many_cachedTime: ✅ 121.571µs (SLO: <130.000µs -6.5%) vs baseline: +0.6% Memory: ✅ 37.452MB (SLO: <38.500MB -2.7%) vs baseline: +4.6% ✅ import_many_stdlibTime: ✅ 1.636ms (SLO: <1.750ms -6.5%) vs baseline: +0.3% Memory: ✅ 37.718MB (SLO: <38.500MB -2.0%) vs baseline: +4.6% ✅ import_many_stdlib_cachedTime: ✅ 0.979ms (SLO: <1.100ms 📉 -11.0%) vs baseline: -0.6% Memory: ✅ 37.675MB (SLO: <38.500MB -2.1%) vs baseline: +4.5% ✅ import_many_unknownTime: ✅ 829.564µs (SLO: <890.000µs -6.8%) vs baseline: +0.3% Memory: ✅ 37.718MB (SLO: <38.500MB -2.0%) vs baseline: +5.4% ✅ import_many_unknown_cachedTime: ✅ 789.744µs (SLO: <870.000µs -9.2%) vs baseline: -0.5% Memory: ✅ 37.630MB (SLO: <38.500MB -2.3%) vs baseline: +4.7% ✅ import_oneTime: ✅ 19.708µs (SLO: <30.000µs 📉 -34.3%) vs baseline: -0.3% Memory: ✅ 38.134MB (SLO: <39.000MB -2.2%) vs baseline: +6.3% ✅ import_one_cacheTime: ✅ 6.283µs (SLO: <10.000µs 📉 -37.2%) vs baseline: +0.5% Memory: ✅ 37.462MB (SLO: <38.500MB -2.7%) vs baseline: +4.4% ✅ import_one_stdlibTime: ✅ 18.610µs (SLO: <20.000µs -7.0%) vs baseline: -0.9% Memory: ✅ 37.477MB (SLO: <38.500MB -2.7%) vs baseline: +4.9% ✅ import_one_stdlib_cacheTime: ✅ 6.278µs (SLO: <10.000µs 📉 -37.2%) vs baseline: ~same Memory: ✅ 38.180MB (SLO: <38.500MB 🟡 -0.8%) vs baseline: +6.5% ✅ import_one_unknownTime: ✅ 45.466µs (SLO: <50.000µs -9.1%) vs baseline: +0.7% Memory: ✅ 37.503MB (SLO: <38.500MB -2.6%) vs baseline: +4.6% ✅ import_one_unknown_cacheTime: ✅ 6.364µs (SLO: <10.000µs 📉 -36.4%) vs baseline: +1.7% Memory: ✅ 38.244MB (SLO: <38.500MB 🟡 -0.7%) vs baseline: +6.8% 🟡 span - 26/26✅ add-eventTime: ✅ 20.559ms (SLO: <22.500ms -8.6%) vs baseline: -0.2% Memory: ✅ 49.624MB (SLO: <53.000MB -6.4%) vs baseline: +4.7% ✅ add-metricsTime: ✅ 90.456ms (SLO: <93.500ms -3.3%) vs baseline: -0.2% Memory: ✅ 690.631MB (SLO: <961.000MB 📉 -28.1%) vs baseline: +5.0% ✅ add-tagsTime: ✅ 148.372ms (SLO: <155.000ms -4.3%) vs baseline: +0.9% Memory: ✅ 690.153MB (SLO: <962.500MB 📉 -28.3%) vs baseline: +4.8% ✅ get-contextTime: ✅ 18.939ms (SLO: <20.500ms -7.6%) vs baseline: +0.5% Memory: ✅ 48.458MB (SLO: <53.000MB -8.6%) vs baseline: +4.8% ✅ is-recordingTime: ✅ 19.357ms (SLO: <20.500ms -5.6%) vs baseline: +0.8% Memory: ✅ 48.399MB (SLO: <53.000MB -8.7%) vs baseline: +4.5% ✅ record-exceptionTime: ✅ 38.039ms (SLO: <40.000ms -4.9%) vs baseline: +1.2% Memory: ✅ 42.444MB (SLO: <53.000MB 📉 -19.9%) vs baseline: +5.0% ✅ set-statusTime: ✅ 20.650ms (SLO: <22.000ms -6.1%) vs baseline: -0.2% Memory: ✅ 48.462MB (SLO: <53.000MB -8.6%) vs baseline: +4.8% ✅ startTime: ✅ 18.788ms (SLO: <20.500ms -8.4%) vs baseline: ~same Memory: ✅ 48.426MB (SLO: <53.000MB -8.6%) vs baseline: +4.7% ✅ start-finishTime: ✅ 51.595ms (SLO: <52.500ms 🟡 -1.7%) vs baseline: +0.7% Memory: ✅ 32.165MB (SLO: <34.000MB -5.4%) vs baseline: +4.9% ✅ start-finish-telemetryTime: ✅ 53.011ms (SLO: <54.500ms -2.7%) vs baseline: +0.9% Memory: ✅ 32.145MB (SLO: <34.000MB -5.5%) vs baseline: +4.7% ✅ start-finish-traceid128Time: ✅ 55.183ms (SLO: <56.000ms 🟡 -1.5%) vs baseline: +0.8% Memory: ✅ 32.067MB (SLO: <34.000MB -5.7%) vs baseline: +4.6% ✅ start-traceid128Time: ✅ 19.097ms (SLO: <22.500ms 📉 -15.1%) vs baseline: +0.3% Memory: ✅ 48.381MB (SLO: <53.000MB -8.7%) vs baseline: +4.4% ✅ update-nameTime: ✅ 19.379ms (SLO: <22.000ms 📉 -11.9%) vs baseline: +1.2% Memory: ✅ 49.142MB (SLO: <53.000MB -7.3%) vs baseline: +4.9%
|
Description
We make the stack v2 sampler release the GIL when performing internal state mutation that can require acquiring other internal locks. This gives the chance to other threads to make progress while the tracking operations wait on an internal mutex.