File tree Expand file tree Collapse file tree 1 file changed +26
-0
lines changed
opentelemetry-sdk/benches Expand file tree Collapse file tree 1 file changed +26
-0
lines changed Original file line number Diff line number Diff line change @@ -126,10 +126,36 @@ fn logging_comparable_to_appender(c: &mut Criterion) {
126126 } ) ;
127127}
128128
129+ fn logger_emit ( c : & mut Criterion ) {
130+ // Provider is created once, outside of the benchmark
131+ let provider = LoggerProvider :: builder ( )
132+ . with_log_processor ( NoopProcessor { } )
133+ . build ( ) ;
134+
135+ let logger = provider. logger ( "benchmark_emit" ) ;
136+
137+ // Create the log record once
138+ let mut log_record = logger. create_log_record ( ) ;
139+ log_record. set_body ( "simple log" . into ( ) ) ;
140+
141+ // Convert log_record into a raw pointer
142+ let log_record_ptr: * mut _ = & mut log_record;
143+
144+ c. bench_function ( "logger_emit" , |b| {
145+ b. iter ( || {
146+ unsafe {
147+ // Dereference the raw pointer to pass it to emit
148+ logger. emit ( std:: ptr:: read ( log_record_ptr) ) ;
149+ }
150+ } ) ;
151+ } ) ;
152+ }
153+
129154fn criterion_benchmark ( c : & mut Criterion ) {
130155 logger_creation ( c) ;
131156 log_provider_creation ( c) ;
132157 logging_comparable_to_appender ( c) ;
158+ logger_emit ( c) ;
133159 log_benchmark_group ( c, "simple-log" , |logger| {
134160 let mut log_record = logger. create_log_record ( ) ;
135161 log_record. set_body ( "simple log" . into ( ) ) ;
You can’t perform that action at this time.
0 commit comments