Skip to content

Conversation

@pablomartinezbernardo
Copy link
Contributor

Summary of changes

Reason for change

Implementation details

Test coverage

Other details

@github-actions
Copy link
Contributor

github-actions bot commented Nov 18, 2025

Snapshots difference summary

The following differences have been observed in committed snapshots. It is meant to help the reviewer.
The diff is simplistic, so please check some files anyway while we improve it.

1 occurrences of :

+    Resource: Create //dbs/,
+    Service: Samples.CosmosDb.Vnext-cosmosdb,
+    Type: sql,
+    Tags: {
+      component: CosmosDb,
+      cosmosdb.connection.mode: gateway,
+      db.response.status_code: 201,
+      db.type: cosmosdb,
+      env: integration_tests,
+      language: dotnet,
+      out.host: https://cosmosdb-emulator:8081/,
+      runtime-id: Guid_1,
+      span.kind: client,
+      user_agent.original: cosmos-netstandard-sdk/3.0.0|3.0.0|00|arch|os|runtime|,
+      _dd.base_service: Samples.CosmosDb.Vnext
+    },
+    Metrics: {
+      process_id: 0,
+      _dd.top_level: 1.0,
+      _dd.tracer_kr: 1.0,
+      _sampling_priority_v1: 1.0
+    }
+  },
+  {
+    TraceId: Id_3,
+    SpanId: Id_4,
+    Name: cosmosdb.query,
+    Resource: Create dbs/db,
+    Service: Samples.CosmosDb.Vnext-cosmosdb,
+    Type: sql,
+    Tags: {
+      component: CosmosDb,
+      cosmosdb.connection.mode: gateway,
+      db.response.status_code: 201,
+      db.type: cosmosdb,
+      env: integration_tests,
+      language: dotnet,
+      out.host: https://cosmosdb-emulator:8081/,
+      runtime-id: Guid_1,
+      span.kind: client,
+      user_agent.original: cosmos-netstandard-sdk/3.0.0|3.0.0|00|arch|os|runtime|,
+      _dd.base_service: Samples.CosmosDb.Vnext
+    },
+    Metrics: {
+      process_id: 0,
+      _dd.top_level: 1.0,
+      _dd.tracer_kr: 1.0,
+      _sampling_priority_v1: 1.0
+    }
+  },
+  {
+    TraceId: Id_5,
+    SpanId: Id_6,
+    Name: cosmosdb.query,
+    Resource: Create dbs/db/colls/items,
+    Service: Samples.CosmosDb.Vnext-cosmosdb,
+    Type: sql,
+    Tags: {
+      component: CosmosDb,
+      cosmosdb.connection.mode: gateway,
+      cosmosdb.container: items,
+      db.name: db,
+      db.response.status_code: 201,
+      db.type: cosmosdb,
+      env: integration_tests,
+      language: dotnet,
+      out.host: https://cosmosdb-emulator:8081/,
+      runtime-id: Guid_1,
+      span.kind: client,
+      user_agent.original: cosmos-netstandard-sdk/3.0.0|3.0.0|00|arch|os|runtime|,
+      _dd.base_service: Samples.CosmosDb.Vnext
+    },
+    Metrics: {
+      process_id: 0,
+      _dd.top_level: 1.0,
+      _dd.tracer_kr: 1.0,
+      _sampling_priority_v1: 1.0
+    }
+  },
+  {
+    TraceId: Id_7,
+    SpanId: Id_8,
+    Name: cosmosdb.query,
+    Resource: Create dbs/db/colls/items,
+    Service: Samples.CosmosDb.Vnext-cosmosdb,
+    Type: sql,
+    Tags: {
+      component: CosmosDb,
+      cosmosdb.connection.mode: gateway,
+      cosmosdb.container: items,
+      db.name: db,
+      db.response.status_code: 201,
+      db.type: cosmosdb,
+      env: integration_tests,
+      language: dotnet,
+      out.host: https://cosmosdb-emulator:8081/,
+      runtime-id: Guid_1,
+      span.kind: client,
+      user_agent.original: cosmos-netstandard-sdk/3.0.0|3.0.0|00|arch|os|runtime|,
+      _dd.base_service: Samples.CosmosDb.Vnext
+    },
+    Metrics: {
+      process_id: 0,
+      _dd.top_level: 1.0,
+      _dd.tracer_kr: 1.0,
+      _sampling_priority_v1: 1.0
+    }
+  },
+  {
+    TraceId: Id_9,
+    SpanId: Id_10,
+    Name: cosmosdb.query,
+    Resource: Delete dbs/db,
+    Service: Samples.CosmosDb.Vnext-cosmosdb,
+    Type: sql,
+    Tags: {
+      component: CosmosDb,
+      cosmosdb.connection.mode: gateway,
+      db.response.status_code: 204,
+      db.type: cosmosdb,
+      env: integration_tests,
+      language: dotnet,
+      out.host: https://cosmosdb-emulator:8081/,
+      runtime-id: Guid_1,
+      span.kind: client,
+      user_agent.original: cosmos-netstandard-sdk/3.0.0|3.0.0|00|arch|os|runtime|,
+      _dd.base_service: Samples.CosmosDb.Vnext
+    },
+    Metrics: {
+      process_id: 0,
+      _dd.top_level: 1.0,
+      _dd.tracer_kr: 1.0,
+      _sampling_priority_v1: 1.0
+    }
+  },
+  {
+    TraceId: Id_11,
+    SpanId: Id_12,
+    Name: cosmosdb.query,
+    Resource: Read dbs/db,
+    Service: Samples.CosmosDb.Vnext-cosmosdb,
+    Type: sql,
+    Tags: {
+      component: CosmosDb,
+      cosmosdb.connection.mode: gateway,
+      db.response.status_code: 404,
+      db.type: cosmosdb,
+      env: integration_tests,
+      language: dotnet,
+      out.host: https://cosmosdb-emulator:8081/,
+      runtime-id: Guid_1,
+      span.kind: client,
+      user_agent.original: cosmos-netstandard-sdk/3.0.0|3.0.0|00|arch|os|runtime|,
+      _dd.base_service: Samples.CosmosDb.Vnext
+    },
+    Metrics: {
+      process_id: 0,
+      _dd.top_level: 1.0,
+      _dd.tracer_kr: 1.0,
+      _sampling_priority_v1: 1.0
+    }
+  },
+  {
+    TraceId: Id_13,
+    SpanId: Id_14,
+    Name: cosmosdb.query,
+    Resource: Read dbs/db/colls/items,
+    Service: Samples.CosmosDb.Vnext-cosmosdb,
+    Type: sql,
+    Tags: {
+      component: CosmosDb,
+      cosmosdb.connection.mode: gateway,
+      db.response.status_code: 404,
+      db.type: cosmosdb,
+      env: integration_tests,
+      language: dotnet,
+      out.host: https://cosmosdb-emulator:8081/,
+      runtime-id: Guid_1,
+      span.kind: client,
+      user_agent.original: cosmos-netstandard-sdk/3.0.0|3.0.0|00|arch|os|runtime|,
+      _dd.base_service: Samples.CosmosDb.Vnext
+    },
+    Metrics: {
+      process_id: 0,
+      _dd.top_level: 1.0,
+      _dd.tracer_kr: 1.0,
+      _sampling_priority_v1: 1.0
+    }
+  },
+  {
+    TraceId: Id_15,
+    SpanId: Id_16,
+    Name: cosmosdb.query,
+    Resource: Read dbs/db/colls/items/docs/Andersen.1,
+    Service: Samples.CosmosDb.Vnext-cosmosdb,
+    Type: sql,
+    Tags: {
+      component: CosmosDb,
+      cosmosdb.connection.mode: gateway,
+      cosmosdb.container: items,
+      db.name: db,
+      db.response.status_code: 404,
+      db.type: cosmosdb,
+      env: integration_tests,
+      language: dotnet,
+      out.host: https://cosmosdb-emulator:8081/,
+      runtime-id: Guid_1,
+      span.kind: client,
+      user_agent.original: cosmos-netstandard-sdk/3.0.0|3.0.0|00|arch|os|runtime|,
+      _dd.base_service: Samples.CosmosDb.Vnext
+    },
+    Metrics: {
+      process_id: 0,
+      _dd.top_level: 1.0,
+      _dd.tracer_kr: 1.0,
+      _sampling_priority_v1: 1.0
+    }
+  },
+  {
+    TraceId: Id_17,
+    SpanId: Id_18,
+    Name: cosmosdb.query,
+    Resource: Read dbs/db/colls/items/docs/Wakefield.7,
+    Service: Samples.CosmosDb.Vnext-cosmosdb,
+    Type: sql,
+    Tags: {
+      component: CosmosDb,
+      cosmosdb.connection.mode: gateway,
+      cosmosdb.container: items,
+      db.name: db,
+      db.response.status_code: 404,
+      db.type: cosmosdb,
+      env: integration_tests,
+      language: dotnet,
+      out.host: https://cosmosdb-emulator:8081/,
+      runtime-id: Guid_1,
+      span.kind: client,
+      user_agent.original: cosmos-netstandard-sdk/3.0.0|3.0.0|00|arch|os|runtime|,
+      _dd.base_service: Samples.CosmosDb.Vnext
+    },
+    Metrics: {
+      process_id: 0,
+      _dd.top_level: 1.0,
+      _dd.tracer_kr: 1.0,
+      _sampling_priority_v1: 1.0
+    }
+  },
+  {
+    TraceId: Id_19,
+    SpanId: Id_20,
+    Name: cosmosdb.query,

2 occurrences of :

-    TraceId: Id_3,
-    SpanId: Id_4,
+    TraceId: Id_21,
+    SpanId: Id_22,

2 occurrences of :

-    TraceId: Id_5,
-    SpanId: Id_6,
+    TraceId: Id_23,
+    SpanId: Id_24,

2 occurrences of :

-    TraceId: Id_7,
-    SpanId: Id_8,
+    TraceId: Id_25,
+    SpanId: Id_26,

1 occurrences of :

+    Resource: Create //dbs/,
+    Service: Samples.CosmosDb.Vnext,
+    Type: sql,
+    Tags: {
+      component: CosmosDb,
+      cosmosdb.connection.mode: gateway,
+      db.response.status_code: 201,
+      db.type: cosmosdb,
+      env: integration_tests,
+      language: dotnet,
+      out.host: cosmosdb-emulator,
+      out.port: 8081,
+      peer.service: cosmosdb-emulator,
+      runtime-id: Guid_1,
+      span.kind: client,
+      user_agent.original: cosmos-netstandard-sdk/3.0.0|3.0.0|00|arch|os|runtime|,
+      version: 1.0.0,
+      _dd.peer.service.source: out.host
+    },
+    Metrics: {
+      process_id: 0,
+      _dd.top_level: 1.0,
+      _dd.tracer_kr: 1.0,
+      _sampling_priority_v1: 1.0
+    }
+  },
+  {
+    TraceId: Id_3,
+    SpanId: Id_4,
+    Name: cosmosdb.query,
+    Resource: Create dbs/db,
+    Service: Samples.CosmosDb.Vnext,
+    Type: sql,
+    Tags: {
+      component: CosmosDb,
+      cosmosdb.connection.mode: gateway,
+      db.response.status_code: 201,
+      db.type: cosmosdb,
+      env: integration_tests,
+      language: dotnet,
+      out.host: cosmosdb-emulator,
+      out.port: 8081,
+      peer.service: cosmosdb-emulator,
+      runtime-id: Guid_1,
+      span.kind: client,
+      user_agent.original: cosmos-netstandard-sdk/3.0.0|3.0.0|00|arch|os|runtime|,
+      version: 1.0.0,
+      _dd.peer.service.source: out.host
+    },
+    Metrics: {
+      process_id: 0,
+      _dd.top_level: 1.0,
+      _dd.tracer_kr: 1.0,
+      _sampling_priority_v1: 1.0
+    }
+  },
+  {
+    TraceId: Id_5,
+    SpanId: Id_6,
+    Name: cosmosdb.query,
+    Resource: Create dbs/db/colls/items,
+    Service: Samples.CosmosDb.Vnext,
+    Type: sql,
+    Tags: {
+      component: CosmosDb,
+      cosmosdb.connection.mode: gateway,
+      cosmosdb.container: items,
+      db.name: db,
+      db.response.status_code: 201,
+      db.type: cosmosdb,
+      env: integration_tests,
+      language: dotnet,
+      out.host: cosmosdb-emulator,
+      out.port: 8081,
+      peer.service: db,
+      runtime-id: Guid_1,
+      span.kind: client,
+      user_agent.original: cosmos-netstandard-sdk/3.0.0|3.0.0|00|arch|os|runtime|,
+      version: 1.0.0,
+      _dd.peer.service.source: db.name
+    },
+    Metrics: {
+      process_id: 0,
+      _dd.top_level: 1.0,
+      _dd.tracer_kr: 1.0,
+      _sampling_priority_v1: 1.0
+    }
+  },
+  {
+    TraceId: Id_7,
+    SpanId: Id_8,
+    Name: cosmosdb.query,
+    Resource: Create dbs/db/colls/items,
+    Service: Samples.CosmosDb.Vnext,
+    Type: sql,
+    Tags: {
+      component: CosmosDb,
+      cosmosdb.connection.mode: gateway,
+      cosmosdb.container: items,
+      db.name: db,
+      db.response.status_code: 201,
+      db.type: cosmosdb,
+      env: integration_tests,
+      language: dotnet,
+      out.host: cosmosdb-emulator,
+      out.port: 8081,
+      peer.service: db,
+      runtime-id: Guid_1,
+      span.kind: client,
+      user_agent.original: cosmos-netstandard-sdk/3.0.0|3.0.0|00|arch|os|runtime|,
+      version: 1.0.0,
+      _dd.peer.service.source: db.name
+    },
+    Metrics: {
+      process_id: 0,
+      _dd.top_level: 1.0,
+      _dd.tracer_kr: 1.0,
+      _sampling_priority_v1: 1.0
+    }
+  },
+  {
+    TraceId: Id_9,
+    SpanId: Id_10,
+    Name: cosmosdb.query,
+    Resource: Delete dbs/db,
+    Service: Samples.CosmosDb.Vnext,
+    Type: sql,
+    Tags: {
+      component: CosmosDb,
+      cosmosdb.connection.mode: gateway,
+      db.response.status_code: 204,
+      db.type: cosmosdb,
+      env: integration_tests,
+      language: dotnet,
+      out.host: cosmosdb-emulator,
+      out.port: 8081,
+      peer.service: cosmosdb-emulator,
+      runtime-id: Guid_1,
+      span.kind: client,
+      user_agent.original: cosmos-netstandard-sdk/3.0.0|3.0.0|00|arch|os|runtime|,
+      version: 1.0.0,
+      _dd.peer.service.source: out.host
+    },
+    Metrics: {
+      process_id: 0,
+      _dd.top_level: 1.0,
+      _dd.tracer_kr: 1.0,
+      _sampling_priority_v1: 1.0
+    }
+  },
+  {
+    TraceId: Id_11,
+    SpanId: Id_12,
+    Name: cosmosdb.query,
+    Resource: Read dbs/db,
+    Service: Samples.CosmosDb.Vnext,
+    Type: sql,
+    Tags: {
+      component: CosmosDb,
+      cosmosdb.connection.mode: gateway,
+      db.response.status_code: 404,
+      db.type: cosmosdb,
+      env: integration_tests,
+      language: dotnet,
+      out.host: cosmosdb-emulator,
+      out.port: 8081,
+      peer.service: cosmosdb-emulator,
+      runtime-id: Guid_1,
+      span.kind: client,
+      user_agent.original: cosmos-netstandard-sdk/3.0.0|3.0.0|00|arch|os|runtime|,
+      version: 1.0.0,
+      _dd.peer.service.source: out.host
+    },
+    Metrics: {
+      process_id: 0,
+      _dd.top_level: 1.0,
+      _dd.tracer_kr: 1.0,
+      _sampling_priority_v1: 1.0
+    }
+  },
+  {
+    TraceId: Id_13,
+    SpanId: Id_14,
+    Name: cosmosdb.query,
+    Resource: Read dbs/db/colls/items,
+    Service: Samples.CosmosDb.Vnext,
+    Type: sql,
+    Tags: {
+      component: CosmosDb,
+      cosmosdb.connection.mode: gateway,
+      db.response.status_code: 404,
+      db.type: cosmosdb,
+      env: integration_tests,
+      language: dotnet,
+      out.host: cosmosdb-emulator,
+      out.port: 8081,
+      peer.service: cosmosdb-emulator,
+      runtime-id: Guid_1,
+      span.kind: client,
+      user_agent.original: cosmos-netstandard-sdk/3.0.0|3.0.0|00|arch|os|runtime|,
+      version: 1.0.0,
+      _dd.peer.service.source: out.host
+    },
+    Metrics: {
+      process_id: 0,
+      _dd.top_level: 1.0,
+      _dd.tracer_kr: 1.0,
+      _sampling_priority_v1: 1.0
+    }
+  },
+  {
+    TraceId: Id_15,
+    SpanId: Id_16,
+    Name: cosmosdb.query,
+    Resource: Read dbs/db/colls/items/docs/Andersen.1,
+    Service: Samples.CosmosDb.Vnext,
+    Type: sql,
+    Tags: {
+      component: CosmosDb,
+      cosmosdb.connection.mode: gateway,
+      cosmosdb.container: items,
+      db.name: db,
+      db.response.status_code: 404,
+      db.type: cosmosdb,
+      env: integration_tests,
+      language: dotnet,
+      out.host: cosmosdb-emulator,
+      out.port: 8081,
+      peer.service: db,
+      runtime-id: Guid_1,
+      span.kind: client,
+      user_agent.original: cosmos-netstandard-sdk/3.0.0|3.0.0|00|arch|os|runtime|,
+      version: 1.0.0,
+      _dd.peer.service.source: db.name
+    },
+    Metrics: {
+      process_id: 0,
+      _dd.top_level: 1.0,
+      _dd.tracer_kr: 1.0,
+      _sampling_priority_v1: 1.0
+    }
+  },
+  {
+    TraceId: Id_17,
+    SpanId: Id_18,
+    Name: cosmosdb.query,
+    Resource: Read dbs/db/colls/items/docs/Wakefield.7,
+    Service: Samples.CosmosDb.Vnext,
+    Type: sql,
+    Tags: {
+      component: CosmosDb,
+      cosmosdb.connection.mode: gateway,
+      cosmosdb.container: items,
+      db.name: db,
+      db.response.status_code: 404,
+      db.type: cosmosdb,
+      env: integration_tests,
+      language: dotnet,
+      out.host: cosmosdb-emulator,
+      out.port: 8081,
+      peer.service: db,
+      runtime-id: Guid_1,
+      span.kind: client,
+      user_agent.original: cosmos-netstandard-sdk/3.0.0|3.0.0|00|arch|os|runtime|,
+      version: 1.0.0,
+      _dd.peer.service.source: db.name
+    },
+    Metrics: {
+      process_id: 0,
+      _dd.top_level: 1.0,
+      _dd.tracer_kr: 1.0,
+      _sampling_priority_v1: 1.0
+    }
+  },
+  {
+    TraceId: Id_19,
+    SpanId: Id_20,
+    Name: cosmosdb.query,

@datadog-official

This comment has been minimized.

@dd-trace-dotnet-ci-bot
Copy link

dd-trace-dotnet-ci-bot bot commented Nov 18, 2025

Execution-Time Benchmarks Report ⏱️

Execution-time results for samples comparing This PR (7837) and master.

✅ No regressions detected - check the details below

Full Metrics Comparison

FakeDbCommand

Metric Master (Mean ± 95% CI) Current (Mean ± 95% CI) Change Status
.NET Framework 4.8 - Baseline
duration75.38 ± (75.49 - 76.20) ms74.73 ± (74.80 - 75.54) ms-0.9%
.NET Framework 4.8 - Bailout
duration79.76 ± (79.52 - 80.18) ms79.09 ± (78.99 - 79.60) ms-0.8%
.NET Framework 4.8 - CallTarget+Inlining+NGEN
duration1109.88 ± (1111.58 - 1122.37) ms1117.02 ± (1121.42 - 1134.43) ms+0.6%✅⬆️
.NET Core 3.1 - Baseline
process.internal_duration_ms23.00 ± (22.93 - 23.07) ms22.86 ± (22.79 - 22.93) ms-0.6%
process.time_to_main_ms87.18 ± (86.84 - 87.52) ms87.41 ± (87.05 - 87.77) ms+0.3%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed10.91 ± (10.91 - 10.91) MB10.91 ± (10.90 - 10.91) MB-0.0%
runtime.dotnet.threads.count12 ± (12 - 12)12 ± (12 - 12)+0.0%
.NET Core 3.1 - Bailout
process.internal_duration_ms22.75 ± (22.69 - 22.81) ms22.73 ± (22.67 - 22.79) ms-0.1%
process.time_to_main_ms87.56 ± (87.19 - 87.93) ms87.95 ± (87.66 - 88.24) ms+0.4%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed10.95 ± (10.94 - 10.95) MB10.95 ± (10.95 - 10.95) MB+0.0%✅⬆️
runtime.dotnet.threads.count13 ± (13 - 13)13 ± (13 - 13)+0.0%
.NET Core 3.1 - CallTarget+Inlining+NGEN
process.internal_duration_ms218.72 ± (217.39 - 220.04) ms219.56 ± (218.13 - 220.98) ms+0.4%✅⬆️
process.time_to_main_ms548.05 ± (546.77 - 549.33) ms545.29 ± (544.19 - 546.40) ms-0.5%
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed52.62 ± (52.60 - 52.64) MB52.50 ± (52.48 - 52.52) MB-0.2%
runtime.dotnet.threads.count28 ± (28 - 28)28 ± (28 - 28)-0.0%
.NET 6 - Baseline
process.internal_duration_ms21.67 ± (21.60 - 21.74) ms21.57 ± (21.51 - 21.63) ms-0.5%
process.time_to_main_ms75.78 ± (75.42 - 76.13) ms76.33 ± (76.01 - 76.64) ms+0.7%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed10.61 ± (10.61 - 10.62) MB10.63 ± (10.63 - 10.64) MB+0.2%✅⬆️
runtime.dotnet.threads.count10 ± (10 - 10)10 ± (10 - 10)+0.0%
.NET 6 - Bailout
process.internal_duration_ms21.86 ± (21.79 - 21.94) ms21.75 ± (21.67 - 21.84) ms-0.5%
process.time_to_main_ms78.17 ± (77.79 - 78.54) ms78.45 ± (78.05 - 78.85) ms+0.4%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed10.67 ± (10.67 - 10.67) MB10.66 ± (10.66 - 10.66) MB-0.1%
runtime.dotnet.threads.count11 ± (11 - 11)11 ± (11 - 11)+0.0%
.NET 6 - CallTarget+Inlining+NGEN
process.internal_duration_ms206.31 ± (204.95 - 207.67) ms205.95 ± (204.74 - 207.17) ms-0.2%
process.time_to_main_ms513.43 ± (512.06 - 514.80) ms508.94 ± (507.82 - 510.07) ms-0.9%
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed51.86 ± (51.83 - 51.89) MB51.59 ± (51.56 - 51.62) MB-0.5%
runtime.dotnet.threads.count28 ± (28 - 28)28 ± (28 - 28)+0.0%✅⬆️
.NET 8 - Baseline
process.internal_duration_ms19.88 ± (19.81 - 19.95) ms19.70 ± (19.65 - 19.75) ms-0.9%
process.time_to_main_ms75.61 ± (75.27 - 75.94) ms74.57 ± (74.23 - 74.90) ms-1.4%
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed7.66 ± (7.66 - 7.67) MB7.64 ± (7.63 - 7.64) MB-0.3%
runtime.dotnet.threads.count10 ± (10 - 10)10 ± (10 - 10)+0.0%
.NET 8 - Bailout
process.internal_duration_ms19.64 ± (19.58 - 19.70) ms19.72 ± (19.67 - 19.77) ms+0.4%✅⬆️
process.time_to_main_ms75.86 ± (75.57 - 76.14) ms76.33 ± (76.01 - 76.65) ms+0.6%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed7.71 ± (7.70 - 7.72) MB7.69 ± (7.69 - 7.70) MB-0.2%
runtime.dotnet.threads.count11 ± (11 - 11)11 ± (11 - 11)+0.0%
.NET 8 - CallTarget+Inlining+NGEN
process.internal_duration_ms191.79 ± (190.93 - 192.66) ms189.10 ± (188.19 - 190.02) ms-1.4%
process.time_to_main_ms492.11 ± (491.10 - 493.13) ms482.26 ± (481.29 - 483.22) ms-2.0%
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed38.97 ± (38.93 - 39.01) MB38.77 ± (38.73 - 38.80) MB-0.5%
runtime.dotnet.threads.count27 ± (27 - 27)27 ± (27 - 27)-0.0%

HttpMessageHandler

Metric Master (Mean ± 95% CI) Current (Mean ± 95% CI) Change Status
.NET Framework 4.8 - Baseline
duration192.05 ± (191.97 - 192.89) ms194.12 ± (194.05 - 194.99) ms+1.1%✅⬆️
.NET Framework 4.8 - Bailout
duration195.26 ± (195.04 - 195.57) ms200.30 ± (200.45 - 201.84) ms+2.6%✅⬆️
.NET Framework 4.8 - CallTarget+Inlining+NGEN
duration1163.36 ± (1164.37 - 1172.84) ms1174.33 ± (1178.75 - 1189.07) ms+0.9%✅⬆️
.NET Core 3.1 - Baseline
process.internal_duration_ms189.26 ± (188.81 - 189.70) ms192.42 ± (191.92 - 192.93) ms+1.7%✅⬆️
process.time_to_main_ms81.34 ± (81.06 - 81.62) ms82.21 ± (81.97 - 82.46) ms+1.1%✅⬆️
runtime.dotnet.exceptions.count3 ± (3 - 3)3 ± (3 - 3)+0.0%
runtime.dotnet.mem.committed16.05 ± (16.02 - 16.08) MB16.12 ± (16.11 - 16.14) MB+0.5%✅⬆️
runtime.dotnet.threads.count20 ± (19 - 20)20 ± (20 - 20)+0.6%✅⬆️
.NET Core 3.1 - Bailout
process.internal_duration_ms187.33 ± (187.01 - 187.65) ms189.25 ± (188.78 - 189.73) ms+1.0%✅⬆️
process.time_to_main_ms81.96 ± (81.84 - 82.07) ms82.46 ± (82.28 - 82.64) ms+0.6%✅⬆️
runtime.dotnet.exceptions.count3 ± (3 - 3)3 ± (3 - 3)+0.0%
runtime.dotnet.mem.committed16.12 ± (16.09 - 16.15) MB16.17 ± (16.14 - 16.20) MB+0.3%✅⬆️
runtime.dotnet.threads.count21 ± (20 - 21)21 ± (20 - 21)+0.1%✅⬆️
.NET Core 3.1 - CallTarget+Inlining+NGEN
process.internal_duration_ms394.95 ± (392.64 - 397.26) ms397.61 ± (394.94 - 400.29) ms+0.7%✅⬆️
process.time_to_main_ms518.95 ± (518.27 - 519.62) ms518.84 ± (518.05 - 519.63) ms-0.0%
runtime.dotnet.exceptions.count3 ± (3 - 3)3 ± (3 - 3)+0.0%
runtime.dotnet.mem.committed63.05 ± (62.89 - 63.21) MB62.95 ± (62.79 - 63.10) MB-0.2%
runtime.dotnet.threads.count29 ± (29 - 29)29 ± (29 - 29)-0.0%
.NET 6 - Baseline
process.internal_duration_ms192.46 ± (192.07 - 192.84) ms194.46 ± (194.03 - 194.89) ms+1.0%✅⬆️
process.time_to_main_ms70.02 ± (69.83 - 70.22) ms70.74 ± (70.54 - 70.95) ms+1.0%✅⬆️
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed16.34 ± (16.31 - 16.37) MB16.37 ± (16.34 - 16.39) MB+0.2%✅⬆️
runtime.dotnet.threads.count19 ± (19 - 19)19 ± (19 - 19)-0.6%
.NET 6 - Bailout
process.internal_duration_ms191.03 ± (190.75 - 191.31) ms193.38 ± (192.93 - 193.84) ms+1.2%✅⬆️
process.time_to_main_ms70.89 ± (70.77 - 71.00) ms71.42 ± (71.25 - 71.60) ms+0.8%✅⬆️
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed16.14 ± (16.00 - 16.29) MB16.17 ± (16.07 - 16.27) MB+0.2%✅⬆️
runtime.dotnet.threads.count19 ± (19 - 19)20 ± (20 - 20)+3.3%✅⬆️
.NET 6 - CallTarget+Inlining+NGEN
process.internal_duration_ms411.77 ± (408.71 - 414.83) ms416.14 ± (412.84 - 419.44) ms+1.1%✅⬆️
process.time_to_main_ms487.60 ± (487.05 - 488.14) ms483.25 ± (482.67 - 483.83) ms-0.9%
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed62.16 ± (62.02 - 62.30) MB62.00 ± (61.86 - 62.14) MB-0.3%
runtime.dotnet.threads.count29 ± (29 - 29)29 ± (29 - 29)-0.2%
.NET 8 - Baseline
process.internal_duration_ms190.46 ± (190.15 - 190.76) ms191.02 ± (190.65 - 191.38) ms+0.3%✅⬆️
process.time_to_main_ms69.42 ± (69.28 - 69.56) ms69.73 ± (69.52 - 69.94) ms+0.4%✅⬆️
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed11.72 ± (11.69 - 11.75) MB11.74 ± (11.72 - 11.77) MB+0.2%✅⬆️
runtime.dotnet.threads.count18 ± (18 - 18)18 ± (18 - 18)+0.3%✅⬆️
.NET 8 - Bailout
process.internal_duration_ms189.46 ± (189.21 - 189.70) ms190.10 ± (189.72 - 190.49) ms+0.3%✅⬆️
process.time_to_main_ms70.39 ± (70.29 - 70.49) ms70.49 ± (70.37 - 70.61) ms+0.1%✅⬆️
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed11.79 ± (11.76 - 11.83) MB11.80 ± (11.77 - 11.82) MB+0.1%✅⬆️
runtime.dotnet.threads.count19 ± (19 - 19)19 ± (19 - 19)-0.1%
.NET 8 - CallTarget+Inlining+NGEN
process.internal_duration_ms361.79 ± (360.17 - 363.40) ms363.79 ± (362.35 - 365.24) ms+0.6%✅⬆️
process.time_to_main_ms463.84 ± (463.38 - 464.29) ms460.77 ± (460.11 - 461.42) ms-0.7%
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed50.44 ± (50.40 - 50.49) MB50.39 ± (50.35 - 50.42) MB-0.1%
runtime.dotnet.threads.count29 ± (29 - 29)29 ± (29 - 29)+0.5%✅⬆️
Comparison explanation

Execution-time benchmarks measure the whole time it takes to execute a program, and are intended to measure the one-off costs. Cases where the execution time results for the PR are worse than latest master results are highlighted in **red**. The following thresholds were used for comparing the execution times:

  • Welch test with statistical test for significance of 5%
  • Only results indicating a difference greater than 5% and 5 ms are considered.

Note that these results are based on a single point-in-time result for each branch. For full results, see the dashboard.

Graphs show the p99 interval based on the mean and StdDev of the test run, as well as the mean value of the run (shown as a diamond below the graph).

Duration charts
FakeDbCommand (.NET Framework 4.8)
gantt
    title Execution time (ms) FakeDbCommand (.NET Framework 4.8)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7837) - mean (75ms)  : 70, 81
    master - mean (76ms)  : 71, 81

    section Bailout
    This PR (7837) - mean (79ms)  : 75, 84
    master - mean (80ms)  : 75, 85

    section CallTarget+Inlining+NGEN
    This PR (7837) - mean (1,128ms)  : 1027, 1229
    master - mean (1,117ms)  : 1038, 1196

Loading
FakeDbCommand (.NET Core 3.1)
gantt
    title Execution time (ms) FakeDbCommand (.NET Core 3.1)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7837) - mean (118ms)  : 110, 126
    master - mean (118ms)  : 110, 125

    section Bailout
    This PR (7837) - mean (118ms)  : 112, 125
    master - mean (118ms)  : 111, 125

    section CallTarget+Inlining+NGEN
    This PR (7837) - mean (797ms)  : 751, 843
    master - mean (800ms)  : 758, 841

Loading
FakeDbCommand (.NET 6)
gantt
    title Execution time (ms) FakeDbCommand (.NET 6)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7837) - mean (105ms)  : 100, 110
    master - mean (104ms)  : 97, 111

    section Bailout
    This PR (7837) - mean (107ms)  : 99, 115
    master - mean (107ms)  : 100, 114

    section CallTarget+Inlining+NGEN
    This PR (7837) - mean (747ms)  : 710, 784
    master - mean (754ms)  : 711, 797

Loading
FakeDbCommand (.NET 8)
gantt
    title Execution time (ms) FakeDbCommand (.NET 8)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7837) - mean (102ms)  : 96, 109
    master - mean (104ms)  : 98, 110

    section Bailout
    This PR (7837) - mean (104ms)  : 98, 110
    master - mean (104ms)  : 99, 109

    section CallTarget+Inlining+NGEN
    This PR (7837) - mean (703ms)  : 674, 732
    master - mean (715ms)  : 689, 740

Loading
HttpMessageHandler (.NET Framework 4.8)
gantt
    title Execution time (ms) HttpMessageHandler (.NET Framework 4.8)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7837) - mean (195ms)  : 189, 200
    master - mean (192ms)  : 188, 197

    section Bailout
    This PR (7837) - mean (201ms)  : 190, 212
    master - mean (195ms)  : 193, 198

    section CallTarget+Inlining+NGEN
    This PR (7837) - mean (1,184ms)  : 1110, 1258
    master - mean (1,169ms)  : 1105, 1232

Loading
HttpMessageHandler (.NET Core 3.1)
gantt
    title Execution time (ms) HttpMessageHandler (.NET Core 3.1)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7837) - mean (283ms)  : 271, 296
    master - mean (279ms)  : 274, 284

    section Bailout
    This PR (7837) - mean (280ms)  : 273, 287
    master - mean (277ms)  : 273, 281

    section CallTarget+Inlining+NGEN
    This PR (7837) - mean (950ms)  : 902, 998
    master - mean (947ms)  : 911, 984

Loading
HttpMessageHandler (.NET 6)
gantt
    title Execution time (ms) HttpMessageHandler (.NET 6)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7837) - mean (273ms)  : 266, 281
    master - mean (271ms)  : 266, 275

    section Bailout
    This PR (7837) - mean (273ms)  : 265, 281
    master - mean (270ms)  : 265, 274

    section CallTarget+Inlining+NGEN
    This PR (7837) - mean (929ms)  : 874, 985
    master - mean (931ms)  : 882, 979

Loading
HttpMessageHandler (.NET 8)
gantt
    title Execution time (ms) HttpMessageHandler (.NET 8)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7837) - mean (270ms)  : 264, 276
    master - mean (270ms)  : 265, 274

    section Bailout
    This PR (7837) - mean (270ms)  : 265, 276
    master - mean (269ms)  : 265, 274

    section CallTarget+Inlining+NGEN
    This PR (7837) - mean (856ms)  : 833, 879
    master - mean (857ms)  : 836, 879

Loading

@pr-commenter
Copy link

pr-commenter bot commented Nov 18, 2025

Benchmarks

Benchmarks Report for benchmark platform 🐌

Benchmarks for #7837 compared to master:

  • All benchmarks have the same speed
  • 4 benchmarks have fewer allocations
  • 5 benchmarks have more allocations

The following thresholds were used for comparing the benchmark speeds:

  • Mann–Whitney U test with statistical test for significance of 5%
  • Only results indicating a difference greater than 10% and 0.3 ns are considered.

Allocation changes below 0.5% are ignored.

Benchmark details

Benchmarks.Trace.ActivityBenchmark - Same speed ✔️ Fewer allocations 🎉

Fewer allocations 🎉 in #7837

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.ActivityBenchmark.StartStopWithChild‑netcoreapp3.1 5.8 KB 5.69 KB -114 B -1.97%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartStopWithChild net6.0 10.8μs 38.2ns 143ns 0 0 0 5.51 KB
master StartStopWithChild netcoreapp3.1 12.9μs 66.6ns 312ns 0 0 0 5.8 KB
master StartStopWithChild net472 22.2μs 119ns 618ns 1 0.334 0.111 6.02 KB
#7837 StartStopWithChild net6.0 10.8μs 55.8ns 268ns 0 0 0 5.52 KB
#7837 StartStopWithChild netcoreapp3.1 14μs 73.6ns 368ns 0 0 0 5.69 KB
#7837 StartStopWithChild net472 22.1μs 120ns 682ns 1.01 0.337 0.112 6.02 KB
Benchmarks.Trace.AgentWriterBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net6.0 936μs 150ns 540ns 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 1.01ms 75.5ns 272ns 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces net472 1.21ms 101ns 393ns 0 0 0 3.31 KB
#7837 WriteAndFlushEnrichedTraces net6.0 918μs 25.7ns 96.3ns 0 0 0 2.7 KB
#7837 WriteAndFlushEnrichedTraces netcoreapp3.1 1.02ms 1.47μs 5.51μs 0 0 0 2.7 KB
#7837 WriteAndFlushEnrichedTraces net472 1.23ms 1.83μs 7.09μs 0 0 0 3.31 KB
Benchmarks.Trace.Asm.AppSecBodyBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master AllCycleSimpleBody net6.0 1.07μs 1.57ns 6.1ns 0 0 0 1.22 KB
master AllCycleSimpleBody netcoreapp3.1 1.42μs 7.68ns 40.6ns 0 0 0 1.2 KB
master AllCycleSimpleBody net472 1.01μs 0.12ns 0.432ns 0.193 0 0 1.23 KB
master AllCycleMoreComplexBody net6.0 7.08μs 38.7ns 232ns 0 0 0 4.72 KB
master AllCycleMoreComplexBody netcoreapp3.1 8.95μs 44.8ns 210ns 0 0 0 4.62 KB
master AllCycleMoreComplexBody net472 7.73μs 3.52ns 13.2ns 0.731 0 0 4.74 KB
master ObjectExtractorSimpleBody net6.0 334ns 1.69ns 7.57ns 0 0 0 280 B
master ObjectExtractorSimpleBody netcoreapp3.1 394ns 2.18ns 13.4ns 0 0 0 272 B
master ObjectExtractorSimpleBody net472 297ns 0.0547ns 0.212ns 0.0434 0 0 281 B
master ObjectExtractorMoreComplexBody net6.0 6.31μs 30.6ns 122ns 0 0 0 3.78 KB
master ObjectExtractorMoreComplexBody netcoreapp3.1 7.86μs 33.8ns 131ns 0 0 0 3.69 KB
master ObjectExtractorMoreComplexBody net472 6.78μs 5.76ns 21.6ns 0.574 0 0 3.8 KB
#7837 AllCycleSimpleBody net6.0 1.14μs 1.55ns 5.59ns 0 0 0 1.22 KB
#7837 AllCycleSimpleBody netcoreapp3.1 1.43μs 7.78ns 42.6ns 0 0 0 1.2 KB
#7837 AllCycleSimpleBody net472 1.03μs 0.31ns 1.16ns 0.192 0 0 1.23 KB
#7837 AllCycleMoreComplexBody net6.0 7.24μs 37.4ns 187ns 0 0 0 4.72 KB
#7837 AllCycleMoreComplexBody netcoreapp3.1 9.1μs 42.2ns 164ns 0 0 0 4.62 KB
#7837 AllCycleMoreComplexBody net472 7.65μs 5.35ns 20.7ns 0.724 0 0 4.74 KB
#7837 ObjectExtractorSimpleBody net6.0 322ns 0.457ns 1.71ns 0 0 0 280 B
#7837 ObjectExtractorSimpleBody netcoreapp3.1 396ns 2.2ns 13.4ns 0 0 0 272 B
#7837 ObjectExtractorSimpleBody net472 295ns 0.0322ns 0.125ns 0.0445 0 0 281 B
#7837 ObjectExtractorMoreComplexBody net6.0 6.38μs 3.13ns 12.1ns 0 0 0 3.78 KB
#7837 ObjectExtractorMoreComplexBody netcoreapp3.1 7.81μs 37.2ns 154ns 0 0 0 3.69 KB
#7837 ObjectExtractorMoreComplexBody net472 6.76μs 8.49ns 32.9ns 0.58 0 0 3.8 KB
Benchmarks.Trace.Asm.AppSecEncoderBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EncodeArgs net6.0 76.5μs 238ns 922ns 0 0 0 32.4 KB
master EncodeArgs netcoreapp3.1 97.9μs 317ns 1.23μs 0 0 0 32.4 KB
master EncodeArgs net472 109μs 83ns 321ns 4.92 0 0 32.5 KB
master EncodeLegacyArgs net6.0 145μs 14.4ns 53.8ns 0 0 0 2.15 KB
master EncodeLegacyArgs netcoreapp3.1 200μs 120ns 449ns 0 0 0 2.14 KB
master EncodeLegacyArgs net472 260μs 29ns 108ns 0 0 0 2.16 KB
#7837 EncodeArgs net6.0 76.7μs 53.7ns 208ns 0 0 0 32.4 KB
#7837 EncodeArgs netcoreapp3.1 98.1μs 216ns 835ns 0 0 0 32.4 KB
#7837 EncodeArgs net472 109μs 11.7ns 45.3ns 4.91 0 0 32.51 KB
#7837 EncodeLegacyArgs net6.0 143μs 9.01ns 34.9ns 0 0 0 2.15 KB
#7837 EncodeLegacyArgs netcoreapp3.1 197μs 126ns 490ns 0 0 0 2.15 KB
#7837 EncodeLegacyArgs net472 263μs 107ns 401ns 0 0 0 2.16 KB
Benchmarks.Trace.Asm.AppSecWafBenchmark - Same speed ✔️ Fewer allocations 🎉

Fewer allocations 🎉 in #7837

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Asm.AppSecWafBenchmark.RunWafRealisticBenchmark‑netcoreapp3.1 4.55 KB 4.48 KB -72 B -1.58%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master RunWafRealisticBenchmark net6.0 398μs 84.4ns 316ns 0 0 0 4.55 KB
master RunWafRealisticBenchmark netcoreapp3.1 856μs 2.52μs 9.42μs 0 0 0 4.55 KB
master RunWafRealisticBenchmark net472 430μs 48ns 173ns 0 0 0 4.66 KB
master RunWafRealisticBenchmarkWithAttack net6.0 284μs 106ns 412ns 0 0 0 2.24 KB
master RunWafRealisticBenchmarkWithAttack netcoreapp3.1 695μs 9.03μs 90.3μs 0 0 0 2.22 KB
master RunWafRealisticBenchmarkWithAttack net472 310μs 27.9ns 108ns 0 0 0 2.29 KB
#7837 RunWafRealisticBenchmark net6.0 393μs 143ns 535ns 0 0 0 4.55 KB
#7837 RunWafRealisticBenchmark netcoreapp3.1 861μs 4.21μs 16.3μs 0 0 0 4.48 KB
#7837 RunWafRealisticBenchmark net472 428μs 33.7ns 131ns 0 0 0 4.66 KB
#7837 RunWafRealisticBenchmarkWithAttack net6.0 291μs 47.9ns 179ns 0 0 0 2.24 KB
#7837 RunWafRealisticBenchmarkWithAttack netcoreapp3.1 712μs 3.8μs 20.5μs 0 0 0 2.22 KB
#7837 RunWafRealisticBenchmarkWithAttack net472 309μs 38ns 142ns 0 0 0 2.29 KB
Benchmarks.Trace.AspNetCoreBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendRequest net6.0 61.1μs 47.5ns 178ns 0 0 0 14.52 KB
master SendRequest netcoreapp3.1 71μs 170ns 614ns 0 0 0 17.42 KB
master SendRequest net472 0.00376ns 0.00182ns 0.00706ns 0 0 0 0 b
#7837 SendRequest net6.0 60.6μs 89.1ns 334ns 0 0 0 14.52 KB
#7837 SendRequest netcoreapp3.1 71.6μs 133ns 516ns 0 0 0 17.42 KB
#7837 SendRequest net472 0.00575ns 0.00275ns 0.0106ns 0 0 0 0 b
Benchmarks.Trace.CharSliceBenchmark - Same speed ✔️ More allocations ⚠️

More allocations ⚠️ in #7837

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSliceWithPool‑netcoreapp3.1 0 b 1 B 1 B
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSlice‑net6.0 2 B 7 B 5 B 250.00%

Fewer allocations 🎉 in #7837

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSliceWithPool‑net6.0 5 B 3 B -2 B -40.00%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master OriginalCharSlice net6.0 1.9ms 5.18μs 20μs 0 0 0 640.01 KB
master OriginalCharSlice netcoreapp3.1 2.14ms 7.97μs 30.9μs 0 0 0 640 KB
master OriginalCharSlice net472 2.65ms 904ns 3.5μs 100 0 0 641.95 KB
master OptimizedCharSlice net6.0 1.37ms 158ns 614ns 0 0 0 2 B
master OptimizedCharSlice netcoreapp3.1 1.71ms 506ns 1.96μs 0 0 0 1 B
master OptimizedCharSlice net472 2.02ms 308ns 1.19μs 0 0 0 0 b
master OptimizedCharSliceWithPool net6.0 799μs 91.3ns 354ns 0 0 0 5 B
master OptimizedCharSliceWithPool netcoreapp3.1 846μs 174ns 673ns 0 0 0 0 b
master OptimizedCharSliceWithPool net472 1.13ms 71.1ns 266ns 0 0 0 0 b
#7837 OriginalCharSlice net6.0 1.99ms 3.23μs 12.5μs 0 0 0 640.01 KB
#7837 OriginalCharSlice netcoreapp3.1 2.08ms 6.61μs 22.9μs 0 0 0 640 KB
#7837 OriginalCharSlice net472 2.78ms 251ns 870ns 100 0 0 641.95 KB
#7837 OptimizedCharSlice net6.0 1.39ms 416ns 1.61μs 0 0 0 7 B
#7837 OptimizedCharSlice netcoreapp3.1 1.69ms 530ns 2.05μs 0 0 0 1 B
#7837 OptimizedCharSlice net472 1.9ms 938ns 3.51μs 0 0 0 0 b
#7837 OptimizedCharSliceWithPool net6.0 810μs 48.1ns 180ns 0 0 0 3 B
#7837 OptimizedCharSliceWithPool netcoreapp3.1 831μs 98.1ns 380ns 0 0 0 1 B
#7837 OptimizedCharSliceWithPool net472 1.13ms 100ns 375ns 0 0 0 0 b
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net6.0 663μs 2.87μs 11.1μs 0 0 0 41.68 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 717μs 3.35μs 13.4μs 0 0 0 41.89 KB
master WriteAndFlushEnrichedTraces net472 937μs 3.83μs 14.8μs 4.46 0 0 55.84 KB
#7837 WriteAndFlushEnrichedTraces net6.0 666μs 1.71μs 6.62μs 0 0 0 41.72 KB
#7837 WriteAndFlushEnrichedTraces netcoreapp3.1 719μs 3.73μs 18.3μs 0 0 0 41.89 KB
#7837 WriteAndFlushEnrichedTraces net472 902μs 3.17μs 11.9μs 4.46 0 0 55.91 KB
Benchmarks.Trace.DbCommandBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteNonQuery net6.0 1.93μs 2.26ns 8.76ns 0 0 0 1.02 KB
master ExecuteNonQuery netcoreapp3.1 2.65μs 11.3ns 43.8ns 0 0 0 1.02 KB
master ExecuteNonQuery net472 2.87μs 2.65ns 10.3ns 0.143 0.0143 0 987 B
#7837 ExecuteNonQuery net6.0 1.93μs 7.9ns 29.6ns 0 0 0 1.02 KB
#7837 ExecuteNonQuery netcoreapp3.1 2.63μs 8.8ns 34.1ns 0 0 0 1.02 KB
#7837 ExecuteNonQuery net472 2.81μs 5.72ns 21.4ns 0.154 0.014 0 987 B
Benchmarks.Trace.ElasticsearchBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master CallElasticsearch net6.0 1.73μs 8.37ns 32.4ns 0 0 0 1.03 KB
master CallElasticsearch netcoreapp3.1 2.25μs 10.9ns 43.7ns 0 0 0 1.03 KB
master CallElasticsearch net472 3.61μs 2.65ns 10.3ns 0.163 0 0 1.04 KB
master CallElasticsearchAsync net6.0 1.78μs 9.24ns 43.3ns 0 0 0 1.01 KB
master CallElasticsearchAsync netcoreapp3.1 2.34μs 10.7ns 43ns 0 0 0 1.08 KB
master CallElasticsearchAsync net472 3.79μs 4.41ns 17.1ns 0.169 0 0 1.1 KB
#7837 CallElasticsearch net6.0 1.74μs 7.83ns 28.2ns 0 0 0 1.03 KB
#7837 CallElasticsearch netcoreapp3.1 2.22μs 8.02ns 31.1ns 0 0 0 1.03 KB
#7837 CallElasticsearch net472 3.58μs 2.02ns 7.54ns 0.163 0 0 1.04 KB
#7837 CallElasticsearchAsync net6.0 1.89μs 0.712ns 2.76ns 0 0 0 1.01 KB
#7837 CallElasticsearchAsync netcoreapp3.1 2.5μs 3.06ns 11.8ns 0 0 0 1.08 KB
#7837 CallElasticsearchAsync net472 3.74μs 8.8ns 34.1ns 0.167 0 0 1.1 KB
Benchmarks.Trace.GraphQLBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteAsync net6.0 1.82μs 1.53ns 5.93ns 0 0 0 952 B
master ExecuteAsync netcoreapp3.1 2.44μs 11ns 42.5ns 0 0 0 952 B
master ExecuteAsync net472 2.54μs 4.87ns 18.9ns 0.139 0 0 915 B
#7837 ExecuteAsync net6.0 1.92μs 6.2ns 24ns 0 0 0 952 B
#7837 ExecuteAsync netcoreapp3.1 2.44μs 7.82ns 29.3ns 0 0 0 952 B
#7837 ExecuteAsync net472 2.64μs 1.7ns 6.35ns 0.133 0 0 915 B
Benchmarks.Trace.HttpClientBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendAsync net6.0 7.09μs 8.69ns 33.7ns 0 0 0 2.36 KB
master SendAsync netcoreapp3.1 8.7μs 30.7ns 119ns 0 0 0 2.9 KB
master SendAsync net472 12.1μs 8.79ns 34ns 0.481 0 0 3.18 KB
#7837 SendAsync net6.0 6.88μs 21.8ns 84.3ns 0 0 0 2.36 KB
#7837 SendAsync netcoreapp3.1 8.72μs 12.8ns 47.8ns 0 0 0 2.9 KB
#7837 SendAsync net472 12.5μs 14ns 54.3ns 0.504 0 0 3.18 KB
Benchmarks.Trace.Iast.StringAspectsBenchmark - Same speed ✔️ More allocations ⚠️

More allocations ⚠️ in #7837

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑net472 278.53 KB 286.72 KB 8.19 KB 2.94%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑net6.0 43.44 KB 44.15 KB 712 B 1.64%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑net6.0 275.24 KB 278.45 KB 3.21 KB 1.17%

Fewer allocations 🎉 in #7837

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑netcoreapp3.1 45.53 KB 42.86 KB -2.67 KB -5.87%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StringConcatBenchmark net6.0 44.1μs 235ns 1.27μs 0 0 0 43.44 KB
master StringConcatBenchmark netcoreapp3.1 51.4μs 336ns 3.24μs 0 0 0 45.53 KB
master StringConcatBenchmark net472 56.5μs 220ns 795ns 0 0 0 57.34 KB
master StringConcatAspectBenchmark net6.0 471μs 1.45μs 6.81μs 0 0 0 275.24 KB
master StringConcatAspectBenchmark netcoreapp3.1 489μs 2.34μs 9.34μs 0 0 0 257.13 KB
master StringConcatAspectBenchmark net472 407μs 2.22μs 12.5μs 0 0 0 278.53 KB
#7837 StringConcatBenchmark net6.0 45.2μs 260ns 1.95μs 0 0 0 44.15 KB
#7837 StringConcatBenchmark netcoreapp3.1 50.1μs 286ns 2.48μs 0 0 0 42.86 KB
#7837 StringConcatBenchmark net472 56.7μs 279ns 1.15μs 0 0 0 57.34 KB
#7837 StringConcatAspectBenchmark net6.0 489μs 1.25μs 4.5μs 0 0 0 278.45 KB
#7837 StringConcatAspectBenchmark netcoreapp3.1 541μs 2.43μs 9.07μs 0 0 0 258.37 KB
#7837 StringConcatAspectBenchmark net472 406μs 2.06μs 9.21μs 0 0 0 286.72 KB
Benchmarks.Trace.ILoggerBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 2.65μs 13.6ns 65.4ns 0 0 0 1.7 KB
master EnrichedLog netcoreapp3.1 3.67μs 11.8ns 45.6ns 0 0 0 1.7 KB
master EnrichedLog net472 3.78μs 2.75ns 10.7ns 0.247 0 0 1.64 KB
#7837 EnrichedLog net6.0 2.68μs 13.4ns 57ns 0 0 0 1.7 KB
#7837 EnrichedLog netcoreapp3.1 3.7μs 3.19ns 12.4ns 0 0 0 1.7 KB
#7837 EnrichedLog net472 4.09μs 6.08ns 23.6ns 0.245 0 0 1.64 KB
Benchmarks.Trace.Log4netBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 124μs 200ns 747ns 0 0 0 4.31 KB
master EnrichedLog netcoreapp3.1 128μs 175ns 605ns 0 0 0 4.31 KB
master EnrichedLog net472 165μs 75.2ns 291ns 0 0 0 4.51 KB
#7837 EnrichedLog net6.0 124μs 505ns 1.89μs 0 0 0 4.31 KB
#7837 EnrichedLog netcoreapp3.1 128μs 369ns 1.38μs 0 0 0 4.31 KB
#7837 EnrichedLog net472 168μs 554ns 2μs 0 0 0 4.52 KB
Benchmarks.Trace.NLogBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 4.94μs 2.16ns 8.35ns 0 0 0 2.26 KB
master EnrichedLog netcoreapp3.1 6.74μs 29.2ns 113ns 0 0 0 2.26 KB
master EnrichedLog net472 7.58μs 8.17ns 30.6ns 0.301 0 0 2.08 KB
#7837 EnrichedLog net6.0 5.16μs 6.75ns 25.3ns 0 0 0 2.26 KB
#7837 EnrichedLog netcoreapp3.1 6.98μs 24.2ns 93.8ns 0 0 0 2.26 KB
#7837 EnrichedLog net472 7.68μs 11.3ns 44ns 0.307 0 0 2.08 KB
Benchmarks.Trace.RedisBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendReceive net6.0 1.92μs 9.92ns 46.5ns 0 0 0 1.2 KB
master SendReceive netcoreapp3.1 2.56μs 12ns 46.4ns 0 0 0 1.2 KB
master SendReceive net472 3.14μs 1.36ns 5.28ns 0.188 0 0 1.2 KB
#7837 SendReceive net6.0 1.92μs 0.567ns 2.2ns 0 0 0 1.2 KB
#7837 SendReceive netcoreapp3.1 2.61μs 8.09ns 31.3ns 0 0 0 1.2 KB
#7837 SendReceive net472 3.01μs 3.12ns 11.7ns 0.181 0 0 1.2 KB
Benchmarks.Trace.SerilogBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 4.29μs 1.73ns 6.48ns 0 0 0 1.58 KB
master EnrichedLog netcoreapp3.1 5.62μs 16ns 61.9ns 0 0 0 1.63 KB
master EnrichedLog net472 6.86μs 6.29ns 24.4ns 0.307 0 0 2.03 KB
#7837 EnrichedLog net6.0 4.26μs 9.53ns 36.9ns 0 0 0 1.58 KB
#7837 EnrichedLog netcoreapp3.1 5.62μs 12.1ns 47ns 0 0 0 1.63 KB
#7837 EnrichedLog net472 6.67μs 8.33ns 32.3ns 0.3 0 0 2.03 KB
Benchmarks.Trace.SpanBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartFinishSpan net6.0 778ns 0.251ns 0.938ns 0 0 0 576 B
master StartFinishSpan netcoreapp3.1 996ns 5.22ns 26.1ns 0 0 0 576 B
master StartFinishSpan net472 948ns 0.106ns 0.411ns 0.0903 0 0 578 B
master StartFinishScope net6.0 932ns 2.79ns 10.1ns 0 0 0 696 B
master StartFinishScope netcoreapp3.1 1.18μs 0.875ns 3.39ns 0 0 0 696 B
master StartFinishScope net472 1.15μs 0.221ns 0.854ns 0.104 0 0 658 B
#7837 StartFinishSpan net6.0 778ns 4.05ns 19.4ns 0 0 0 576 B
#7837 StartFinishSpan netcoreapp3.1 958ns 4.87ns 22.3ns 0 0 0 576 B
#7837 StartFinishSpan net472 947ns 0.228ns 0.885ns 0.0896 0 0 578 B
#7837 StartFinishScope net6.0 924ns 3.3ns 12.8ns 0 0 0 696 B
#7837 StartFinishScope netcoreapp3.1 1.2μs 5.87ns 25.6ns 0 0 0 696 B
#7837 StartFinishScope net472 1.16μs 1.83ns 7.11ns 0.104 0 0 658 B
Benchmarks.Trace.TraceAnnotationsBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master RunOnMethodBegin net6.0 1.08μs 0.608ns 2.36ns 0 0 0 696 B
master RunOnMethodBegin netcoreapp3.1 1.48μs 7.47ns 32.6ns 0 0 0 696 B
master RunOnMethodBegin net472 1.44μs 1.74ns 6.72ns 0.101 0 0 658 B
#7837 RunOnMethodBegin net6.0 1.08μs 0.719ns 2.59ns 0 0 0 696 B
#7837 RunOnMethodBegin netcoreapp3.1 1.46μs 4.46ns 17.3ns 0 0 0 696 B
#7837 RunOnMethodBegin net472 1.48μs 3.47ns 13.4ns 0.0972 0 0 658 B

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants