dd-trace-php icon indicating copy to clipboard operation
dd-trace-php copied to clipboard

feat(prof): build with panic=abort, std too

Open morrisonlevi opened this issue 2 months ago • 4 comments

Description

This is an experiment that builds on Florian's feat(prof): switch panics to abort so that it also builds std with panic_abort. This should give us more helpful stack traces on panics.

Reviewer checklist

  • [ ] Test coverage seems ok.

  • [ ] Appropriate labels assigned.

morrisonlevi avatar Nov 10 '25 06:11 morrisonlevi

Codecov Report

:white_check_mark: All modified and coverable lines are covered by tests. :white_check_mark: Project coverage is 61.79%. Comparing base (12004d3) to head (7a89e11).

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##           master    #3478      +/-   ##
==========================================
+ Coverage   61.77%   61.79%   +0.01%     
==========================================
  Files         142      142              
  Lines       12904    12904              
  Branches     1689     1689              
==========================================
+ Hits         7972     7974       +2     
+ Misses       4172     4169       -3     
- Partials      760      761       +1     

see 1 file with indirect coverage changes


Continue to review full report in Codecov by Sentry.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 12004d3...7a89e11. Read the comment docs.

:rocket: New features to boost your workflow:
  • :snowflake: Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • :package: JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

codecov-commenter avatar Nov 11 '25 00:11 codecov-commenter

For reasons that are unclear, this comes out larger than merely doing panic=abort and not rebuilding std. I could not get bloaty to build in multiple different containers, so I don't know why. Let's just ship panic=abort for now.

morrisonlevi avatar Nov 12 '25 20:11 morrisonlevi

Benchmarks [ profiler ]

Benchmark execution time: 2025-11-13 00:27:56

Comparing candidate commit 1f7212bfa1d6368374b8f9da7b0adbd28d472fe7 in PR branch levi/panic_abort2 with baseline commit 8a812dbb34aef38b4775051662b57922641811a6 in branch florian/panic-abort.

Found 0 performance improvements and 4 performance regressions! Performance is the same for 26 metrics, 6 unstable metrics.

scenario:php-profiler-exceptions-control

  • 🟥 cpu_user_time [+1.215ms; +6.236ms] or [+2.172%; +11.147%]

scenario:php-profiler-timeline-memory-with-profiler-and-timeline

  • 🟥 execution_time [+27.818ms; +44.864ms] or [+2.260%; +3.644%]

scenario:walk_stack/50

  • 🟥 wall_time [+570.319ns; +580.053ns] or [+3.689%; +3.752%]

scenario:walk_stack/99

  • 🟥 wall_time [+661.253ns; +666.116ns] or [+4.314%; +4.346%]

pr-commenter[bot] avatar Nov 13 '25 00:11 pr-commenter[bot]

Benchmarks [ tracer ]

Benchmark execution time: 2025-11-13 01:19:08

Comparing candidate commit 1f7212bfa1d6368374b8f9da7b0adbd28d472fe7 in PR branch levi/panic_abort2 with baseline commit 8a812dbb34aef38b4775051662b57922641811a6 in branch florian/panic-abort.

Found 2 performance improvements and 8 performance regressions! Performance is the same for 184 metrics, 0 unstable metrics.

scenario:ComposerTelemetryBench/benchTelemetryParsing

  • 🟥 execution_time [+0.882µs; +1.718µs] or [+8.397%; +16.365%]

scenario:ComposerTelemetryBench/benchTelemetryParsing-opcache

  • 🟩 execution_time [-2.162µs; -1.038µs] or [-15.333%; -7.362%]

scenario:MessagePackSerializationBench/benchMessagePackSerialization

  • 🟥 execution_time [+2.948µs; +3.892µs] or [+2.822%; +3.726%]

scenario:MessagePackSerializationBench/benchMessagePackSerialization-opcache

  • 🟥 execution_time [+4.994µs; +6.606µs] or [+4.939%; +6.532%]

scenario:SamplingRuleMatchingBench/benchRegexMatching1

  • 🟥 execution_time [+85.125ns; +142.475ns] or [+7.261%; +12.152%]

scenario:SamplingRuleMatchingBench/benchRegexMatching2

  • 🟥 execution_time [+93.567ns; +150.033ns] or [+8.097%; +12.983%]

scenario:SamplingRuleMatchingBench/benchRegexMatching3

  • 🟥 execution_time [+98.332ns; +155.468ns] or [+8.378%; +13.246%]

scenario:SamplingRuleMatchingBench/benchRegexMatching4

  • 🟥 execution_time [+75.604ns; +146.396ns] or [+6.421%; +12.433%]

scenario:SpanBench/benchOpenTelemetryAPI

  • 🟥 mem_peak [+1.439MB; +1.459MB] or [+3.462%; +3.510%]

scenario:TraceSerializationBench/benchSerializeTrace

  • 🟩 execution_time [-33.581µs; -22.919µs] or [-7.532%; -5.141%]

pr-commenter[bot] avatar Nov 13 '25 01:11 pr-commenter[bot]