Skip to content
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

remove semver and replace with simpler semifies #5251

Merged
merged 2 commits into from
Feb 12, 2025
Merged

Conversation

rochdev
Copy link
Member

@rochdev rochdev commented Feb 12, 2025

What does this PR do?

Remove dependency on semver and replace it with a much simpler implementation for our needs since we only need satisfies.

Motivation

The module loads 100+ files and is one of the top reasons for startup overhead. Switching to using internal functions directly helps somewhat, but it still stays a top offender.

Copy link

github-actions bot commented Feb 12, 2025

Overall package size

Self size: 8.63 MB
Deduped: 94.96 MB
No deduping: 95.48 MB

Dependency sizes | name | version | self size | total size | |------|---------|-----------|------------| | @datadog/libdatadog | 0.4.0 | 29.44 MB | 29.44 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.5.1 | 9.79 MB | 10.17 MB | | protobufjs | 7.2.5 | 2.77 MB | 5.16 MB | | @datadog/native-iast-rewriter | 2.8.0 | 2.6 MB | 2.74 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 | 835.4 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 | | lodash.sortby | 4.7.0 | 75.76 kB | 75.76 kB | | ignore | 5.3.2 | 53.63 kB | 53.63 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 | | semifies | 1.0.0 | 15.84 kB | 15.84 kB | | jest-docblock | 29.7.0 | 8.99 kB | 12.76 kB | | crypto-randomuuid | 1.0.0 | 11.18 kB | 11.18 kB | | ttl-set | 1.0.0 | 4.61 kB | 9.69 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

Copy link

codecov bot commented Feb 12, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 81.17%. Comparing base (95462ec) to head (1ae0f2b).
Report is 2 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #5251   +/-   ##
=======================================
  Coverage   81.17%   81.17%           
=======================================
  Files         482      482           
  Lines       21530    21530           
=======================================
  Hits        17478    17478           
  Misses       4052     4052           

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

@datadog-datadog-prod-us1
Copy link

datadog-datadog-prod-us1 bot commented Feb 12, 2025

Datadog Report

Branch report: remove-semver
Commit report: da7cd36
Test service: dd-trace-js-integration-tests

✅ 0 Failed, 629 Passed, 0 Skipped, 16m 17.83s Total Time
❄️ 1 New Flaky

New Flaky Tests (1)

  • playwright@1.18.0 works when tests are compiled to a different location - integration-tests/playwright/playwright.spec.js - Last Failure

    Expand for error
     expected [] to be a superset of [ …(2) ]
    

@rochdev rochdev changed the title [DO-NOT-MERGE] WIP remove semver and replace with simpler semifies Feb 12, 2025
@pr-commenter
Copy link

pr-commenter bot commented Feb 12, 2025

Benchmarks

Benchmark execution time: 2025-02-12 15:38:50

Comparing candidate commit 1ae0f2b in PR branch remove-semver with baseline commit 95462ec in branch master.

Found 23 performance improvements and 0 performance regressions! Performance is the same for 881 metrics, 29 unstable metrics.

scenario:appsec-control-18

  • 🟩 cpu_user_time [-31.785ms; -27.706ms] or [-8.287%; -7.223%]
  • 🟩 execution_time [-34.444ms; -28.115ms] or [-7.558%; -6.169%]

scenario:appsec-control-20

  • 🟩 instructions [-45.3M instructions; -43.2M instructions] or [-5.284%; -5.038%]

scenario:appsec-control-with-attacks-18

  • 🟩 cpu_user_time [-30.773ms; -26.218ms] or [-7.955%; -6.777%]
  • 🟩 execution_time [-35.205ms; -27.774ms] or [-7.634%; -6.022%]

scenario:log-without-log-22

  • 🟩 execution_time [-19.065ms; -17.764ms] or [-5.558%; -5.179%]

scenario:net-with-tracer-20

  • 🟩 instructions [-55.1M instructions; -52.0M instructions] or [-5.929%; -5.598%]

scenario:net-with-tracer-22

  • 🟩 execution_time [-28.256ms; -25.957ms] or [-5.509%; -5.061%]
  • 🟩 instructions [-54.6M instructions; -51.7M instructions] or [-5.648%; -5.348%]

scenario:plugin-bluebird-with-tracer-18

  • 🟩 cpu_user_time [-27.859ms; -23.262ms] or [-7.866%; -6.568%]
  • 🟩 execution_time [-31.355ms; -27.962ms] or [-7.715%; -6.880%]

scenario:plugin-graphql-with-depth-off-18

  • 🟩 max_rss_usage [-80.596MB; -69.756MB] or [-8.615%; -7.456%]

scenario:plugin-graphql-with-depth-on-max-18

  • 🟩 max_rss_usage [-133.363MB; -58.109MB] or [-13.848%; -6.034%]

scenario:plugin-http-client-with-tracer-20

  • 🟩 max_rss_usage [-4.181MB; -3.879MB] or [-5.574%; -5.171%]

scenario:startup-with-tracer-18

  • 🟩 cpu_user_time [-25.036ms; -18.608ms] or [-9.598%; -7.134%]
  • 🟩 execution_time [-24.293ms; -22.501ms] or [-8.009%; -7.418%]
  • 🟩 instructions [-51.2M instructions; -45.9M instructions] or [-7.363%; -6.597%]

scenario:startup-with-tracer-20

  • 🟩 cpu_user_time [-38.238ms; -31.636ms] or [-14.983%; -12.396%]
  • 🟩 execution_time [-46.199ms; -41.652ms] or [-15.095%; -13.609%]
  • 🟩 instructions [-65.0M instructions; -60.6M instructions] or [-10.188%; -9.499%]

scenario:startup-with-tracer-22

  • 🟩 cpu_user_time [-23.300ms; -16.152ms] or [-11.304%; -7.837%]
  • 🟩 execution_time [-24.005ms; -22.762ms] or [-9.401%; -8.914%]
  • 🟩 instructions [-53.7M instructions; -51.8M instructions] or [-8.042%; -7.753%]

@rochdev rochdev marked this pull request as ready for review February 12, 2025 15:47
@rochdev rochdev requested review from a team as code owners February 12, 2025 15:47
@rochdev rochdev merged commit 784b6f3 into master Feb 12, 2025
358 checks passed
@rochdev rochdev deleted the remove-semver branch February 12, 2025 16:11
@watson watson mentioned this pull request Feb 17, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants