perf: avoid building closures in Signal

This commit is contained in:
Simon Cruanes 2025-12-03 16:06:50 -05:00
parent 2170c16e7f
commit b433a11c9a
No known key found for this signature in database
GPG key ID: EBFFF6F283F3A2B4

View file

@ -37,7 +37,7 @@ let is_logs = function
| _ -> false | _ -> false
module Encode = struct module Encode = struct
let resource_to_string ~encoder ~ctor ~enc resource = let resource_to_string ~encoder ~ctor ~enc resource : string =
let encoder = let encoder =
match encoder with match encoder with
| Some e -> | Some e ->
@ -51,23 +51,20 @@ module Encode = struct
Pbrt.Encoder.to_string encoder Pbrt.Encoder.to_string encoder
let logs ?encoder resource_logs = let logs ?encoder resource_logs =
resource_logs resource_to_string ~encoder resource_logs
|> resource_to_string ~encoder
~ctor:(fun r -> ~ctor:(fun r ->
Logs_service.make_export_logs_service_request ~resource_logs:r ()) Logs_service.make_export_logs_service_request ~resource_logs:r ())
~enc:Logs_service.encode_pb_export_logs_service_request ~enc:Logs_service.encode_pb_export_logs_service_request
let metrics ?encoder resource_metrics = let metrics ?encoder resource_metrics =
resource_metrics resource_to_string ~encoder resource_metrics
|> resource_to_string ~encoder
~ctor:(fun r -> ~ctor:(fun r ->
Metrics_service.make_export_metrics_service_request Metrics_service.make_export_metrics_service_request ~resource_metrics:r
~resource_metrics:r ()) ())
~enc:Metrics_service.encode_pb_export_metrics_service_request ~enc:Metrics_service.encode_pb_export_metrics_service_request
let traces ?encoder resource_spans = let traces ?encoder resource_spans =
resource_spans resource_to_string ~encoder resource_spans
|> resource_to_string ~encoder
~ctor:(fun r -> ~ctor:(fun r ->
Trace_service.make_export_trace_service_request ~resource_spans:r ()) Trace_service.make_export_trace_service_request ~resource_spans:r ())
~enc:Trace_service.encode_pb_export_trace_service_request ~enc:Trace_service.encode_pb_export_trace_service_request