Skip to content

[DI] Add Sirun benchmark for Dynamic Instrumentation#5004

Merged
watson merged 1 commit into
masterfrom
watson/DEBUG-2740/add-debugger-sirun-benchmark
Jan 13, 2025
Merged

[DI] Add Sirun benchmark for Dynamic Instrumentation#5004
watson merged 1 commit into
masterfrom
watson/DEBUG-2740/add-debugger-sirun-benchmark

Conversation

@watson

@watson watson commented Dec 12, 2024

Copy link
Copy Markdown
Collaborator

Adds a Sirun benchmark for testing the Dynamic Instrumentation code.

The main objective is to see the impact of pausing the main thread when a breakpoint is hit. However, this is hard to measure, so this PR just concentrates on capturing the delta of CPU instructions, execution time etc, between the different benchmark variants.

Later benchmarks PRs will try to improve the data captured, to more precicely measure the impact.

watson commented Dec 12, 2024

Copy link
Copy Markdown
Collaborator Author

This stack of pull requests is managed by Graphite. Learn more about stacking.

@github-actions

github-actions Bot commented Dec 12, 2024

Copy link
Copy Markdown
Contributor

Overall package size

Self size: 8.42 MB
Deduped: 94.77 MB
No deduping: 95.29 MB

Dependency sizes | name | version | self size | total size | |------|---------|-----------|------------| | @datadog/libdatadog | 0.3.0 | 29.43 MB | 29.43 MB | | @datadog/native-appsec | 8.4.0 | 19.25 MB | 19.26 MB | | @datadog/native-iast-taint-tracking | 3.2.0 | 13.9 MB | 13.91 MB | | @datadog/pprof | 5.4.1 | 9.76 MB | 10.13 MB | | protobufjs | 7.2.5 | 2.77 MB | 5.16 MB | | @datadog/native-iast-rewriter | 2.6.1 | 2.59 MB | 2.73 MB | | @opentelemetry/core | 1.14.0 | 872.87 kB | 1.47 MB | | @datadog/native-metrics | 3.1.0 | 1.06 MB | 1.46 MB | | @opentelemetry/api | 1.8.0 | 1.21 MB | 1.21 MB | | import-in-the-middle | 1.11.2 | 112.74 kB | 826.22 kB | | source-map | 0.7.4 | 226 kB | 226 kB | | opentracing | 0.14.7 | 194.81 kB | 194.81 kB | | lru-cache | 7.18.3 | 133.92 kB | 133.92 kB | | pprof-format | 2.1.0 | 111.69 kB | 111.69 kB | | @datadog/sketches-js | 2.1.0 | 109.9 kB | 109.9 kB | | semver | 7.6.3 | 95.82 kB | 95.82 kB | | lodash.sortby | 4.7.0 | 75.76 kB | 75.76 kB | | ignore | 5.3.1 | 51.46 kB | 51.46 kB | | shell-quote | 1.8.1 | 44.96 kB | 44.96 kB | | istanbul-lib-coverage | 3.2.0 | 29.34 kB | 29.34 kB | | rfdc | 1.3.1 | 25.21 kB | 25.21 kB | | @isaacs/ttlcache | 1.4.1 | 25.2 kB | 25.2 kB | | tlhunter-sorted-set | 0.1.0 | 24.94 kB | 24.94 kB | | limiter | 1.1.5 | 23.17 kB | 23.17 kB | | dc-polyfill | 0.1.4 | 23.1 kB | 23.1 kB | | retry | 0.13.1 | 18.85 kB | 18.85 kB | | jest-docblock | 29.7.0 | 8.99 kB | 12.76 kB | | crypto-randomuuid | 1.0.0 | 11.18 kB | 11.18 kB | | path-to-regexp | 0.1.12 | 6.6 kB | 6.6 kB | | koalas | 1.0.2 | 6.47 kB | 6.47 kB | | module-details-from-path | 1.0.3 | 4.47 kB | 4.47 kB |

🤖 This report was automatically generated by heaviest-objects-in-the-universe

@pr-commenter

pr-commenter Bot commented Dec 12, 2024

Copy link
Copy Markdown

Benchmarks

Benchmark execution time: 2025-01-07 14:50:02

Comparing candidate commit 437dbc9 in PR branch watson/DEBUG-2740/add-debugger-sirun-benchmark with baseline commit 317c7a9 in branch master.

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

scenario:log-with-debug-20

  • 🟥 execution_time [+20.098ms; +22.623ms] or [+5.009%; +5.638%]

scenario:log-without-log-20

  • 🟥 cpu_user_time [+19.787ms; +24.407ms] or [+5.748%; +7.090%]
  • 🟥 execution_time [+20.837ms; +22.594ms] or [+5.343%; +5.794%]

scenario:plugin-graphql-with-async-hooks-22

  • 🟥 max_rss_usage [+100.425MB; +115.623MB] or [+18.590%; +21.404%]

@watson watson self-assigned this Dec 12, 2024
@watson watson added semver-patch debugger Dynamic Instrumentation & Live Debugger labels Dec 12, 2024
Base automatically changed from watson/DEBUG-2614/dynamic-breakpoint-url to master December 12, 2024 12:51
@watson
watson force-pushed the watson/DEBUG-2740/add-debugger-sirun-benchmark branch 3 times, most recently from 233c2d1 to 66680b2 Compare December 17, 2024 12:55
@watson
watson changed the base branch from master to watson/DEBUG-3228/batch-requests December 17, 2024 12:55
@codecov

codecov Bot commented Dec 17, 2024

Copy link
Copy Markdown

Codecov Report

All modified and coverable lines are covered by tests ✅

Please upload report for BASE (watson/DEBUG-3228/batch-requests@bd2dfbb). Learn more about missing BASE report.

Additional details and impacted files
@@                         Coverage Diff                         @@
##             watson/DEBUG-3228/batch-requests    #5004   +/-   ##
===================================================================
  Coverage                                    ?   64.26%           
===================================================================
  Files                                       ?      133           
  Lines                                       ?     4662           
  Branches                                    ?        0           
===================================================================
  Hits                                        ?     2996           
  Misses                                      ?     1666           
  Partials                                    ?        0           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@watson
watson force-pushed the watson/DEBUG-2740/add-debugger-sirun-benchmark branch from 66680b2 to f3f46a0 Compare December 17, 2024 15:00
@watson
watson force-pushed the watson/DEBUG-3228/batch-requests branch from bd2dfbb to 39ba330 Compare December 20, 2024 18:09
@watson
watson force-pushed the watson/DEBUG-2740/add-debugger-sirun-benchmark branch from f3f46a0 to 8a1119a Compare December 20, 2024 18:10
Base automatically changed from watson/DEBUG-3228/batch-requests to master January 7, 2025 12:55
@watson
watson force-pushed the watson/DEBUG-2740/add-debugger-sirun-benchmark branch from 8a1119a to 437dbc9 Compare January 7, 2025 14:37
@watson
watson marked this pull request as ready for review January 7, 2025 17:32
@watson
watson requested a review from a team as a code owner January 7, 2025 17:32
"instructions": true,
"variants": {
"control": {
"service": "while true; do { echo -e 'HTTP/1.1 202 Accepted\r\n\r\n'; } | nc -l 8080 > /dev/null; done",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is just my curiosity: this looks useful for my future purposes too, but can you explain to me why is this "service" necessary? It seems to me like the tested app.js doesn't do any HTTP.

@watson watson Jan 13, 2025

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A service is a secondary process that's booted up along side the main process being tested. This is just if the process being tested requires any accompanying process while running. In my case, I wanted to ensure that there were a dummy agent running on the same machine so that the process being tested didn't have to waste time retrying requests to the agent. The service process is automatically killed once the test is finished.

@watson
watson merged commit 684ead6 into master Jan 13, 2025
@watson
watson deleted the watson/DEBUG-2740/add-debugger-sirun-benchmark branch January 13, 2025 09:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

debugger Dynamic Instrumentation & Live Debugger semver-patch

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants