[Do not merge] [otlp] Benchmarks comparison manual vs google protobuf serialization. #5999
+333
−28
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Benchmark results
OtlpHttpExporterBenchmarks - Old
ProtobufOtlpHttpExporterBenchmarks - New
OtlpGrpcExporterBenchmarks - Old
ProtobufOtlpGrpcExporterBenchmarks - New
OtlpTraceExporterBenchmarks
OtlpLogExporterBenchmarks
Note:
CreateHttpRequest
inProtobufOtlpHttpExportClient
and equivalent in Grpc are allocating memory with new implementation. I tried caching theHttpRequestMessage
where the allocation went below 1 KB. But we cannot use caching here asHttpRequestMessage
is designed to be recreated always. As a follow up we will work to enhance this method to avoid the allocation. Reference:opentelemetry-dotnet/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/Implementation/ExportClient/ProtobufOtlpHttpExportClient.cs
Line 82 in f9a0b4c
opentelemetry-dotnet/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/Implementation/ExportClient/ProtobufOtlpGrpcExportClient.cs
Line 69 in f9a0b4c
Merge requirement checklist
CHANGELOG.md
files updated for non-trivial changes