Skip to content

Commit 54543bc

Browse files
committed
add benchmark
1 parent cabb4da commit 54543bc

File tree

1 file changed

+26
-0
lines changed
  • opentelemetry-sdk/benches

1 file changed

+26
-0
lines changed

opentelemetry-sdk/benches/log.rs

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff 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+
129154
fn 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());

0 commit comments

Comments
 (0)