Skip to content

perf(loader): use synchronous hooks during initialization - #9656

Draft
BridgeAR wants to merge 2 commits into
masterfrom
BridgeAR/2026-08-03-sync-loader-init
Draft

perf(loader): use synchronous hooks during initialization#9656
BridgeAR wants to merge 2 commits into
masterfrom
BridgeAR/2026-08-03-sync-loader-init

Conversation

@BridgeAR

@BridgeAR BridgeAR commented Aug 3, 2026

Copy link
Copy Markdown
Member

Summary

--import dd-trace/initialize.mjs always registered the off-thread loader directly, bypassing the existing synchronous registration path. Supported runtimes therefore kept the main-thread/loader-worker IPC overhead that register.js already avoids.

This reduced empty-process startup from 405.81 to 386.82 ms and from 404.58 to 380.09 ms in two fresh-shell runs on Node 24.18.0 (25 alternating trials, best and worst dropped).

--import dd-trace/initialize.mjs always installed the off-thread loader, so supported runtimes still paid main-thread/loader-worker IPC during startup. Reusing the existing synchronous registration path reduced empty-process startup from 405.81 to 386.82 ms and 404.58 to 380.09 ms on Node 24.18.0 (25 alternating trials, best and worst dropped).
@dd-octo-sts

dd-octo-sts Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Overall package size

Self size: 7.76 MB
Deduped: 8.42 MB
No deduping: 8.42 MB

Dependency sizes | name | version | self size | total size | |------|---------|-----------|------------| | import-in-the-middle | 3.3.3 | 125.43 kB | 441.68 kB | | opentracing | 0.14.7 | 194.81 kB | 194.81 kB | | dc-polyfill | 0.1.11 | 25.74 kB | 25.74 kB |

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

@datadog-prod-us1-6

datadog-prod-us1-6 Bot commented Aug 3, 2026

Copy link
Copy Markdown

Pipelines  Tests

⚠️ Warnings

🚦 2 Pipeline jobs failed

APM Capabilities | tracing-windows   View in Datadog   GitHub Actions

🔧 Fix in code. This looks caused by changes in this PR. 1 test failed: TypeError: Cannot read properties of undefined (reading 'split') in loader-hook.spec.js:185

All Green | all-green   View in Datadog   GitHub Actions

📋 Copy prompt for your agent
CI on my pull request is failing. Help me find and fix the root cause of each failing job below — they were flagged as caused by changes in this PR, so focus on the diff. For each job, explain the failure and propose a fix.

Branch: BridgeAR/2026-08-03-sync-loader-init

APM Capabilities | tracing-windows
Commit: de63c113cc411fb4b9f68a648748d37e8024e6ae
Error (code / test):
1 test failed: TypeError: Cannot read properties of undefined (reading 'split') in loader-hook.spec.js:185
CI job: https://github.com/DataDog/dd-trace-js/actions/runs/30828794021/job/91738603616

❄️ 1 New flaky test detected

rewrites ESM loaded through require with synchronous hooks from Mocha Tests   View in Datadog
D:\a\dd-trace-js\dd-trace-js\vendor\dist\@apm-js-collab\code-transformer\index.js:185
    \`;s.body.splice(C+1,0,E(T).body[0])},traceCallback:traceAny,tracePromise:traceAny,traceSync:traceAny,traceAuto:traceAny}},"./@apm-js-collab/code-transformer/node_modules/source-map/lib/array-set.js"(i,s,k){var S=k("./@apm-js-collab/code-transformer/node_modules/source-map/lib/util.js"),E=Object.prototype.hasOwnProperty,w="u">typeof Map;function ArraySet(){this._array=[],this._set=w?new Map:Object.create(null)}ArraySet.fromArray=function(i,s){for(var k=new ArraySet,S=0,E=i.length;S<E;S++)k.add(i[S],s);return k},ArraySet.prototype.size=function(){return w?this._set.size:Object.getOwnPropertyNames(this._set).length},ArraySet.prototype.add=function(i,s){var k=w?i:S.toSetString(i),C=w?this.has(i):E.call(this._set,k),T=this._array.length;(!C||s)&&this._array.push(i),C||(w?this._set.set(i,T):this._set[k]=T)},ArraySet.prototype.has=function(i){if(w)return this._set.has(i);var s=S.toSetString(i);return E.call(this._set,s)},ArraySet.prototype.indexOf=function(i){if(w){var s=this._set.get(i);if(s>=0)return s}else{var k=S.toSetString(i);if(E.call(this._set,k))return this._set[k]}throw Error('"'+i+'" is not in the set.')},ArraySet.prototype.at=function(i){if(i>=0&&i<this._array.length)return this._array[i];throw Error("No element indexed by "+i)},ArraySet.prototype.toArray=function(){return this._array.slice()},s.ArraySet=ArraySet},"./@apm-js-collab/code-transformer/node_modules/source-map/lib/base64-vlq.js"(i,s,k){var S=k("./@apm-js-collab/code-transformer/node_modules/source-map/lib/base64.js");function toVLQSigned(i){return i<0?(-i<<1)+1:(i<<1)+0}function fromVLQSigned(i){var s=i>>1;return(1&i)==1?-s:s}s.encode=function(i){var s,k="",E=toVLQSigned(i);do s=31&E,(E>>>=5)>0&&(s|=32),k+=S.encode(s);while(E>0);return k},s.decode=function(i,s,k){var E,w,C=i.length,T=0,_=0;do{if(s>=C)throw Error("Expected more digits in base 64 VLQ value.");if(-1===(w=S.decode(i.charCodeAt(s++))))throw Error("Invalid base64 digit: "+i.charAt(s-1));E=!!(32&w),w&=31,T+=w<<_,_+=5}while(E);k.value=fromVLQSigned(T),k.rest=s}},"./@apm-js-collab/code-transformer/node_modules/source-map/lib/base64.js"(i,s){var k="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");s.encode=function(i){if(0<=i&&i<k.length)return k[i];throw TypeError("Must be between 0 and 63: "+i)},s.decode=function(i){return 65<=i&&i<=90?i-65:97<=i&&i<=122?i-97+26:48<=i&&i<=57?i-48+52:43==i?62:47==i?63:-1}},"./@apm-js-collab/code-transformer/node_modules/source-map/lib/binary-search.js"(i,s){function recursiveSearch(i,k,S,E,w,C){var T=Math.floor((k-i)/2)+i,_=w(S,E[T],!0);return 0===_?T:_>0?k-T>1?recursiveSearch(T,k,S,E,w,C):C==s.LEAST_UPPER_BOUND?k<E.length?k:-1:T:T-i>1?recursiveSearch(i,T,S,E,w,C):C==s.LEAST_UPPER_BOUND?T:i<0?-1:i}s.GREATEST_LOWER_BOUND=1,s.LEAST_UPPER_BOUND=2,s.search=function(i,k,S,E){if(0===k.length)return -1;var w=recursiveSearch(-1,k.length,i,k,S,E||s.GREATEST_LOWER_BOUND);if(w<0)return -1;for(;w-1>=0&&0===S(k[w],k[w-1],!0);)--w;return w}},"./@apm-js-collab/code-transformer/node_modules/source-map/lib/mapping-list.js"(i,s,k){var S=k("./@apm-js-collab/code-transformer/node_modules/source-map/lib/util.js");function generatedPositionAfter(i,s){var k=i.generatedLine,E=s.generatedLine,w=i.generatedColumn,C=s.generatedColumn;return E>k||E==k&&C>=w||0>=S.compareByGeneratedPositionsInflated(i,s)}function MappingList(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}MappingList.prototype.unsortedForEach=function(i,s){this._array.forEach(i,s)},MappingList.prototype.add=function(i){generatedPositionAfter(this._last,i)?this._last=i:this._sorted=!1,this._array.push(i)},MappingList.prototype.toArray=function(){return this._sorted||(this._array.sort(S.compareByGeneratedPositionsInflated),this._sorted=!0),this._array},s.MappingList=MappingList},"./@apm-js-collab/code-transformer/node_modules/source-map/lib/quick-sort.js"(i,s){function swap(i,s,k){var S=i[s];i[s]=i[k],i[k]=S}function randomIntInRange(i,s){return Math.round(i+Math.random()*(s-i))}function doQuickSort(i,s,k,S){if(k<S){var E=randomIntInRange(k,S),w=k-1;swap(i,E,S);for(var C=i[S],T=k;T<S;T++)0>=s(i[T],C)&&swap(i,w+=1,T);swap(i,w+1,T);var _=w+1;doQuickSort(i,s,k,_-1),doQuickSort(i,s,_+1,S)}}s.quickSort=function(i,s){doQuickSort(i,s,0,i.length-1)}},"./@apm-js-collab/code-transformer/node_modules/source-map/lib/source-map-consumer.js"(i,s,k){var S=k("./@apm-js-collab/code-transformer/node_modules/source-map/lib/util.js"),E=k("./@apm-js-collab/code-transformer/node_modules/source-map/lib/binary-search.js"),w=k("./@apm-js-collab/code-transformer/node_modules/source-map/lib/array-set.js").ArraySet,C=k("./@apm-js-collab/code-transformer/node_modules/source-map/lib/base64-vlq.js"),T=k("./@apm-js-collab/code-transformer/node_modules/source-map/lib/quick-sort.js").quickSort;function SourceMapConsumer(i,s){var k=i;return"string"==typeof i&&(k=S.parseSourceMapInput(i)),null!=k.secti

New test introduced in this PR is flaky.

View in Flaky Test Management

ℹ️ Info

No other issues found (see more)

🧪 All tests passed

🔄 Datadog auto-retried 1 job - 1 passed on retry View in Datadog

🎯 Code Coverage (details)
Patch Coverage: 100.00%
Overall Coverage: 98.53% (+0.00%)

Useful? React with 👍 / 👎

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 53db9ed | Docs | Datadog PR Page | Give us feedback!

@codecov

codecov Bot commented Aug 3, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 98.52%. Comparing base (add6bb5) to head (53db9ed).

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #9656      +/-   ##
==========================================
- Coverage   98.53%   98.52%   -0.02%     
==========================================
  Files         955      955              
  Lines      133293   133306      +13     
  Branches    11536    11567      +31     
==========================================
- Hits       131340   131339       -1     
- Misses       1953     1967      +14     
Flag Coverage Δ
aiguard 56.81% <ø> (-0.03%) ⬇️
aiguard-integration 55.64% <ø> (ø)
apm-bucket-0 57.05% <0.00%> (-0.05%) ⬇️
apm-bucket-1 63.18% <0.00%> (-0.04%) ⬇️
apm-bucket-2 61.98% <0.00%> (-0.05%) ⬇️
apm-bucket-3 59.49% <0.00%> (-0.05%) ⬇️
apm-capabilities-tracing 62.91% <100.00%> (+0.28%) ⬆️
apm-integrations-aerospike 56.11% <ø> (-0.03%) ⬇️
apm-integrations-confluentinc-kafka-javascript 60.84% <0.00%> (-0.02%) ⬇️
apm-integrations-couchbase 56.52% <0.00%> (-0.05%) ⬇️
apm-integrations-http 61.87% <ø> (-0.03%) ⬇️
apm-integrations-kafkajs 61.44% <0.00%> (-0.05%) ⬇️
apm-integrations-next 58.55% <0.00%> (-0.05%) ⬇️
apm-integrations-prisma 58.13% <0.00%> (-0.04%) ⬇️
appsec 71.99% <ø> (-0.02%) ⬇️
appsec-express_fastify_graphql 69.37% <ø> (-0.02%) ⬇️
appsec-integration 50.43% <100.00%> (+<0.01%) ⬆️
appsec-kafka_ldapjs_lodash 63.24% <ø> (-0.02%) ⬇️
appsec-mongodb-core_mongoose_mysql 66.87% <ø> (-0.02%) ⬇️
appsec-next 57.02% <ø> (-0.02%) ⬇️
appsec-node-serialize_passport_postgres 66.51% <ø> (-0.02%) ⬇️
appsec-sourcing_stripe_template 64.86% <ø> (-0.02%) ⬇️
debugger 64.29% <100.00%> (+0.15%) ⬆️
instrumentations-bucket-0 51.35% <ø> (-0.03%) ⬇️
instrumentations-bucket-1 59.44% <ø> (-0.03%) ⬇️
instrumentations-bucket-10 61.26% <ø> (-0.03%) ⬇️
instrumentations-bucket-11 51.25% <ø> (-0.03%) ⬇️
instrumentations-bucket-12 52.06% <ø> (-0.03%) ⬇️
instrumentations-bucket-13 51.36% <ø> (-0.03%) ⬇️
instrumentations-bucket-2 53.18% <ø> (-0.03%) ⬇️
instrumentations-bucket-3 58.49% <ø> (-0.03%) ⬇️
instrumentations-bucket-4 51.89% <ø> (-0.03%) ⬇️
instrumentations-bucket-5 56.95% <ø> (-0.03%) ⬇️
instrumentations-bucket-6 60.10% <ø> (-0.03%) ⬇️
instrumentations-bucket-7 57.86% <ø> (-0.03%) ⬇️
instrumentations-bucket-8 58.83% <ø> (-0.03%) ⬇️
instrumentations-bucket-9 60.79% <ø> (-0.03%) ⬇️
instrumentations-instrumentation-couchbase 50.59% <ø> (-0.03%) ⬇️
instrumentations-integration-esbuild 33.85% <ø> (ø)
llmobs-ai_anthropic_bedrock 62.55% <100.00%> (+0.20%) ⬆️
llmobs-bucket-1 61.35% <100.00%> (+0.19%) ⬆️
llmobs-openai 61.90% <100.00%> (+0.21%) ⬆️
llmobs-openai-agents_vertex-ai 59.60% <0.00%> (-0.04%) ⬇️
llmobs-sdk 66.02% <ø> (-0.03%) ⬇️
master-coverage 98.52% <100.00%> (?)
openfeature 55.42% <ø> (ø)
openfeature-unit 52.93% <ø> (-0.03%) ⬇️
platform-core_esbuild_instrumentations-misc 40.56% <100.00%> (-0.01%) ⬇️
platform-integration 60.33% <100.00%> (+<0.01%) ⬆️
platform-shimmer_unit-guardrails_webpack 38.77% <ø> (-0.02%) ⬇️
plugins-bucket-0 56.89% <100.00%> (+0.22%) ⬆️
plugins-bucket-1 ?
plugins-bucket-11 61.92% <100.00%> (+0.21%) ⬆️
plugins-bucket-18 61.23% <0.00%> (-0.04%) ⬇️
plugins-bucket-19 59.40% <0.00%> (-0.04%) ⬇️
plugins-bucket-20 61.41% <0.00%> (-0.04%) ⬇️
plugins-bucket-4 58.00% <ø> (-0.03%) ⬇️
plugins-bullmq_cassandra_cookie 61.09% <0.00%> (-0.05%) ⬇️
plugins-cookie-parser_crypto_dd-trace-api 56.16% <ø> (-0.03%) ⬇️
plugins-fetch_fs_generic-pool 58.02% <0.00%> (-0.05%) ⬇️
plugins-google-cloud-pubsub_grpc_handlebars 63.96% <0.00%> (-0.05%) ⬇️
plugins-hapi_hono_ioredis 59.59% <0.00%> (-0.05%) ⬇️
plugins-jest_knex_langgraph 55.13% <ø> (-0.03%) ⬇️
plugins-ldapjs_light-my-request_limitd-client 57.90% <0.00%> (-0.04%) ⬇️
plugins-lodash_mariadb_memcached 57.48% <0.00%> (-0.05%) ⬇️
plugins-moleculer_mongodb_mongodb-core 61.22% <0.00%> (-0.05%) ⬇️
plugins-mongoose_multer_mysql 58.49% <0.00%> (-0.04%) ⬇️
plugins-mysql2_nats_node-serialize 60.04% <0.00%> (-0.05%) ⬇️
plugins-opensearch_passport-http_pino 58.93% <0.00%> (-0.05%) ⬇️
plugins-postgres_process_pug 58.08% <0.00%> (-0.05%) ⬇️
plugins-redis_router_sequelize 61.27% <0.00%> (-0.05%) ⬇️
plugins-test-and-upstream-rhea_undici_url 60.83% <0.00%> (-0.04%) ⬇️
plugins-valkey_vm_winston 57.43% <0.00%> (-0.05%) ⬇️
plugins-ws 58.97% <ø> (-0.03%) ⬇️
profiling 61.32% <ø> (-0.03%) ⬇️
serverless-aws-sdk-aws-sdk 54.66% <ø> (-0.02%) ⬇️
serverless-aws-sdk-base-inject-field 50.54% <ø> (-0.03%) ⬇️
serverless-aws-sdk-bedrockruntime 54.34% <ø> (-0.03%) ⬇️
serverless-aws-sdk-client 55.94% <0.00%> (-0.04%) ⬇️
serverless-aws-sdk-dynamodb 55.21% <ø> (-0.03%) ⬇️
serverless-aws-sdk-eventbridge 49.05% <ø> (-0.03%) ⬇️
serverless-aws-sdk-kinesis 58.78% <ø> (-0.03%) ⬇️
serverless-aws-sdk-lambda 56.91% <ø> (-0.03%) ⬇️
serverless-aws-sdk-s3 55.31% <ø> (-0.03%) ⬇️
serverless-aws-sdk-serverless-peer-service 59.19% <ø> (-0.03%) ⬇️
serverless-aws-sdk-sns 59.61% <ø> (-0.03%) ⬇️
serverless-aws-sdk-sqs 60.03% <0.00%> (-0.04%) ⬇️
serverless-aws-sdk-stepfunctions 55.14% <ø> (-0.03%) ⬇️
serverless-aws-sdk-util 51.09% <ø> (-0.03%) ⬇️
serverless-bucket-0 53.75% <0.00%> (-0.02%) ⬇️
serverless-bucket-1 58.66% <0.00%> (-0.04%) ⬇️
test-optimization-cucumber 71.60% <ø> (+0.03%) ⬆️
test-optimization-cypress 65.37% <ø> (+0.10%) ⬆️
test-optimization-jest 72.88% <ø> (-0.04%) ⬇️
test-optimization-mocha 72.76% <ø> (+0.05%) ⬆️
test-optimization-playwright-playwright-atr 60.08% <ø> (+0.01%) ⬆️
test-optimization-playwright-playwright-efd 60.22% <ø> (+<0.01%) ⬆️
test-optimization-playwright-playwright-final-status 60.39% <ø> (+0.01%) ⬆️
test-optimization-playwright-playwright-impacted-tests 59.90% <ø> (+0.17%) ⬆️
test-optimization-playwright-playwright-reporting 61.12% <ø> (-0.10%) ⬇️
test-optimization-playwright-playwright-test-management 60.93% <ø> (-0.09%) ⬇️
test-optimization-playwright-playwright-test-span 60.12% <ø> (-0.05%) ⬇️
test-optimization-selenium 59.65% <ø> (-0.14%) ⬇️
test-optimization-testopt 57.90% <100.00%> (+0.08%) ⬆️
test-optimization-vitest 73.87% <100.00%> (+0.06%) ⬆️
test-optimization-vitest-browser 58.96% <100.00%> (+0.01%) ⬆️
test-optimization-webdriverio 64.41% <100.00%> (+0.06%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

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

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

@pr-commenter

pr-commenter Bot commented Aug 3, 2026

Copy link
Copy Markdown

Benchmarks

Benchmark execution time: 2026-08-03 16:02:00

Comparing candidate commit 53db9ed in PR branch BridgeAR/2026-08-03-sync-loader-init with baseline commit add6bb5 in branch master.

📊 Benchmarking dashboard

Found 2 performance improvements and 2 performance regressions! Performance is the same for 2315 metrics, 39 unstable metrics.

Explanation

This is an A/B test comparing a candidate commit's performance against that of a baseline commit. Performance changes are noted in the tables below as:

  • 🟩 = significantly better candidate vs. baseline
  • 🟥 = significantly worse candidate vs. baseline

We compute a confidence interval (CI) over the relative difference of means between metrics from the candidate and baseline commits, considering the baseline as the reference.

If the CI is entirely outside the configured SIGNIFICANT_IMPACT_THRESHOLD (or the deprecated UNCONFIDENCE_THRESHOLD), the change is considered significant.

Feel free to reach out to #apm-benchmarking-platform on Slack if you have any questions.

More details about the CI and significant changes

You can imagine this CI as a range of values that is likely to contain the true difference of means between the candidate and baseline commits.

CIs of the difference of means are often centered around 0%, because often changes are not that big:

---------------------------------(------|---^--------)-------------------------------->
                              -0.6%    0%  0.3%     +1.2%
                                 |          |        |
         lower bound of the CI --'          |        |
sample mean (center of the CI) -------------'        |
         upper bound of the CI ----------------------'

As described above, a change is considered significant if the CI is entirely outside the configured SIGNIFICANT_IMPACT_THRESHOLD (or the deprecated UNCONFIDENCE_THRESHOLD).

For instance, for an execution time metric, this confidence interval indicates a significantly worse performance:

----------------------------------------|---------|---(---------^---------)---------->
                                       0%        1%  1.3%      2.2%      3.1%
                                                  |   |         |         |
       significant impact threshold --------------'   |         |         |
                      lower bound of CI --------------'         |         |
       sample mean (center of the CI) --------------------------'         |
                      upper bound of CI ----------------------------------'

scenario:startup-with-tracer-everything-esm-24

  • 🟥 instructions [+136.7M instructions; +226.8M instructions] or [+2.280%; +3.782%]
  • 🟩 max_rss_usage [-14.020MB; -8.429MB] or [-6.355%; -3.820%]

scenario:startup-with-tracer-everything-esm-26

  • 🟥 instructions [+121.8M instructions; +198.7M instructions] or [+2.144%; +3.497%]
  • 🟩 max_rss_usage [-13.176MB; -8.073MB] or [-5.816%; -3.564%]

Unstable benchmarks

These benchmarks have a confidence interval too wide to call a change; treat them as noise rather than signal.

scenario:appsec-appsec-enabled-24

  • unstable execution_time [-208073.051µs; +209206.084µs] or [-7.836%; +7.879%]

scenario:appsec-appsec-enabled-26

  • unstable execution_time [-190.885ms; +239.814ms] or [-7.571%; +9.511%]

scenario:appsec-appsec-enabled-with-attacks-24

  • unstable execution_time [-160.195ms; +167.409ms] or [-5.203%; +5.437%]

scenario:appsec-appsec-enabled-with-attacks-26

  • unstable execution_time [-190.476ms; +184.751ms] or [-6.564%; +6.367%]

scenario:appsec-control-20

  • unstable execution_time [-121306.257µs; +122075.590µs] or [-7.355%; +7.401%]

scenario:appsec-control-24

  • unstable execution_time [-117371.160µs; +115748.860µs] or [-9.437%; +9.307%]

scenario:appsec-control-26

  • unstable execution_time [-137.187ms; +99.165ms] or [-11.260%; +8.139%]

scenario:appsec-iast-no-vulnerability-control-20

  • unstable execution_time [-12.413ms; +15.000ms] or [-4.907%; +5.930%]

scenario:appsec-iast-no-vulnerability-iast-enabled-always-active-20

  • unstable execution_time [-11.498ms; +14.444ms] or [-4.464%; +5.608%]

scenario:appsec-iast-with-vulnerability-control-20

  • unstable cpu_usage_percentage [-5.539%; +4.978%]
  • unstable execution_time [-35.150ms; +40.300ms] or [-6.317%; +7.243%]

scenario:debugger-line-probe-with-snapshot-default-24

  • unstable cpu_user_time [-1735.967ms; +566.243ms] or [-20.935%; +6.829%]
  • unstable execution_time [-1788.452ms; +560.003ms] or [-19.845%; +6.214%]
  • unstable instructions [-15.0G instructions; +4.9G instructions] or [-22.174%; +7.183%]
  • unstable throughput [-148.909op/s; +480.327op/s] or [-4.073%; +13.140%]

scenario:debugger-line-probe-with-snapshot-minimal-24

  • unstable cpu_user_time [-2.114s; +4.449s] or [-23.819%; +50.127%]
  • unstable execution_time [-2.215s; +4.601s] or [-23.045%; +47.867%]
  • unstable instructions [-17.7G instructions; +37.8G instructions] or [-24.255%; +51.973%]
  • unstable max_rss_usage [-8.675MB; +18.273MB] or [-5.444%; +11.466%]
  • unstable throughput [-1205.758op/s; +595.684op/s] or [-34.386%; +16.988%]

scenario:debugger-line-probe-with-snapshot-minimal-26

  • unstable cpu_user_time [-2294.221ms; +757.795ms] or [-24.069%; +7.950%]
  • unstable execution_time [-2324.092ms; +755.484ms] or [-22.677%; +7.372%]
  • unstable instructions [-20.5G instructions; +6.7G instructions] or [-25.754%; +8.414%]
  • unstable throughput [-149.810op/s; +456.170op/s] or [-4.629%; +14.095%]

scenario:debugger-line-probe-without-snapshot-24

  • unstable cpu_user_time [-3404.394ms; +3420.566ms] or [-33.780%; +33.941%]
  • unstable execution_time [-3409.851ms; +3422.850ms] or [-31.549%; +31.669%]
  • unstable instructions [-29322.3M instructions; +29272.7M instructions] or [-35.372%; +35.313%]
  • unstable max_rss_usage [-14209.890KB; +14053.890KB] or [-8.653%; +8.558%]
  • unstable throughput [-904.997op/s; +899.661op/s] or [-28.487%; +28.319%]

scenario:dogstatsd-with-tags-20

  • unstable cpu_user_time [-371.199ms; +301.736ms] or [-7.570%; +6.154%]
  • unstable execution_time [-375.275ms; +308.417ms] or [-7.540%; +6.197%]
  • unstable throughput [-110649.137op/s; +132962.584op/s] or [-6.558%; +7.881%]

scenario:plugin-graphql-long-with-depth-and-collapse-off-20

  • unstable max_rss_usage [-24.395MB; +34.921MB] or [-6.139%; +8.788%]

scenario:plugin-graphql-long-with-depth-off-20

  • unstable max_rss_usage [-6659.797KB; +6796.939KB] or [-5.181%; +5.287%]

scenario:plugin-graphql-long-with-depth-off-26

  • unstable max_rss_usage [-3.907MB; +22.078MB] or [-1.796%; +10.147%]

scenario:plugin-graphql-long-with-depth-on-max-20

  • unstable cpu_user_time [-577.556ms; +641.724ms] or [-5.006%; +5.562%]
  • unstable execution_time [-580.385ms; +647.333ms] or [-4.928%; +5.496%]
  • unstable throughput [-3.741op/s; +3.372op/s] or [-5.477%; +4.935%]

scenario:test-optimization-large-suite-20

  • unstable max_rss_usage [-6670.868KB; +4904.201KB] or [-8.118%; +5.968%]

Ordinary CommonJS require() entered the synchronous ESM resolve/load pipeline even though require-in-the-middle owns its instrumentation. Bypassing that redundant work reduced startup for the 21-dependency mixed ESM/CJS fixture from 1071.62 to 1053.44 ms and from 1052.92 to 1027.62 ms in two fresh-shell runs (25 alternating trials, best and worst dropped).
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.

1 participant