Vendor things
This commit is contained in:
parent
5deceec006
commit
977e3c17e5
19434 changed files with 10682014 additions and 0 deletions
24
third-party/vendor/tracing/benches/baseline.rs
vendored
Normal file
24
third-party/vendor/tracing/benches/baseline.rs
vendored
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
use criterion::{black_box, criterion_group, criterion_main, Criterion};
|
||||
|
||||
fn bench(c: &mut Criterion) {
|
||||
use std::sync::atomic::{AtomicUsize, Ordering};
|
||||
|
||||
let mut group = c.benchmark_group("comparison");
|
||||
group.bench_function("relaxed_load", |b| {
|
||||
let foo = AtomicUsize::new(1);
|
||||
b.iter(|| black_box(foo.load(Ordering::Relaxed)));
|
||||
});
|
||||
group.bench_function("acquire_load", |b| {
|
||||
let foo = AtomicUsize::new(1);
|
||||
b.iter(|| black_box(foo.load(Ordering::Acquire)))
|
||||
});
|
||||
group.bench_function("log", |b| {
|
||||
b.iter(|| {
|
||||
log::log!(log::Level::Info, "log");
|
||||
})
|
||||
});
|
||||
group.finish();
|
||||
}
|
||||
|
||||
criterion_group!(benches, bench);
|
||||
criterion_main!(benches);
|
||||
15
third-party/vendor/tracing/benches/dispatch_get_clone.rs
vendored
Normal file
15
third-party/vendor/tracing/benches/dispatch_get_clone.rs
vendored
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
use criterion::{black_box, criterion_group, criterion_main, Criterion};
|
||||
|
||||
mod shared;
|
||||
|
||||
fn bench(c: &mut Criterion) {
|
||||
shared::for_all_dispatches(&mut c.benchmark_group("Dispatch::get_clone"), |b| {
|
||||
b.iter(|| {
|
||||
let current = tracing::dispatcher::get_default(|current| current.clone());
|
||||
black_box(current);
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
criterion_group!(benches, bench);
|
||||
criterion_main!(benches);
|
||||
16
third-party/vendor/tracing/benches/dispatch_get_ref.rs
vendored
Normal file
16
third-party/vendor/tracing/benches/dispatch_get_ref.rs
vendored
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
use criterion::{black_box, criterion_group, criterion_main, Criterion};
|
||||
|
||||
mod shared;
|
||||
|
||||
fn bench(c: &mut Criterion) {
|
||||
shared::for_all_dispatches(&mut c.benchmark_group("Dispatch::get_ref"), |b| {
|
||||
b.iter(|| {
|
||||
tracing::dispatcher::get_default(|current| {
|
||||
black_box(¤t);
|
||||
})
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
criterion_group!(benches, bench);
|
||||
criterion_main!(benches);
|
||||
43
third-party/vendor/tracing/benches/empty_span.rs
vendored
Normal file
43
third-party/vendor/tracing/benches/empty_span.rs
vendored
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
use criterion::{black_box, criterion_group, criterion_main, Criterion};
|
||||
|
||||
mod shared;
|
||||
|
||||
fn bench(c: &mut Criterion) {
|
||||
let mut group = c.benchmark_group("empty_span");
|
||||
shared::for_all_dispatches(&mut group, |b| {
|
||||
b.iter(|| {
|
||||
let span = tracing::span::Span::none();
|
||||
black_box(&span);
|
||||
})
|
||||
});
|
||||
group.bench_function("baseline_struct", |b| {
|
||||
b.iter(|| {
|
||||
let span = FakeEmptySpan::new();
|
||||
black_box(&span);
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
struct FakeEmptySpan {
|
||||
inner: Option<(usize, std::sync::Arc<()>)>,
|
||||
meta: Option<&'static ()>,
|
||||
}
|
||||
|
||||
impl FakeEmptySpan {
|
||||
fn new() -> Self {
|
||||
Self {
|
||||
inner: None,
|
||||
meta: None,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl Drop for FakeEmptySpan {
|
||||
fn drop(&mut self) {
|
||||
black_box(&self.inner);
|
||||
black_box(&self.meta);
|
||||
}
|
||||
}
|
||||
|
||||
criterion_group!(benches, bench);
|
||||
criterion_main!(benches);
|
||||
16
third-party/vendor/tracing/benches/enter_span.rs
vendored
Normal file
16
third-party/vendor/tracing/benches/enter_span.rs
vendored
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
use criterion::{criterion_group, criterion_main, Criterion};
|
||||
use tracing::{span, Level};
|
||||
|
||||
mod shared;
|
||||
|
||||
fn bench(c: &mut Criterion) {
|
||||
shared::for_all_dispatches(&mut c.benchmark_group("enter_span"), |b| {
|
||||
let span = span!(Level::TRACE, "span");
|
||||
b.iter(|| {
|
||||
let _span = span.enter();
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
criterion_group!(benches, bench);
|
||||
criterion_main!(benches);
|
||||
12
third-party/vendor/tracing/benches/event.rs
vendored
Normal file
12
third-party/vendor/tracing/benches/event.rs
vendored
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
use criterion::{criterion_group, criterion_main, Criterion};
|
||||
|
||||
mod shared;
|
||||
|
||||
fn bench(c: &mut Criterion) {
|
||||
shared::for_all_recording(&mut c.benchmark_group("event"), |b| {
|
||||
b.iter(|| tracing::info!("hello world!"))
|
||||
});
|
||||
}
|
||||
|
||||
criterion_group!(benches, bench);
|
||||
criterion_main!(benches);
|
||||
160
third-party/vendor/tracing/benches/shared.rs
vendored
Normal file
160
third-party/vendor/tracing/benches/shared.rs
vendored
Normal file
|
|
@ -0,0 +1,160 @@
|
|||
#![allow(dead_code)]
|
||||
use criterion::{black_box, measurement::WallTime, Bencher};
|
||||
use tracing::{field, span, Event, Id, Metadata};
|
||||
|
||||
use std::{
|
||||
fmt::{self, Write},
|
||||
sync::{Mutex, MutexGuard},
|
||||
};
|
||||
|
||||
pub fn for_all_recording(
|
||||
group: &mut criterion::BenchmarkGroup<'_, WallTime>,
|
||||
mut iter: impl FnMut(&mut Bencher<'_, WallTime>),
|
||||
) {
|
||||
// first, run benchmarks with no subscriber
|
||||
group.bench_function("none", &mut iter);
|
||||
|
||||
// then, run benchmarks with a scoped default subscriber
|
||||
tracing::subscriber::with_default(EnabledSubscriber, || {
|
||||
group.bench_function("scoped", &mut iter)
|
||||
});
|
||||
|
||||
let subscriber = VisitingSubscriber(Mutex::new(String::from("")));
|
||||
tracing::subscriber::with_default(subscriber, || {
|
||||
group.bench_function("scoped_recording", &mut iter);
|
||||
});
|
||||
|
||||
// finally, set a global default subscriber, and run the benchmarks again.
|
||||
tracing::subscriber::set_global_default(EnabledSubscriber)
|
||||
.expect("global default should not have already been set!");
|
||||
let _ = log::set_logger(&NOP_LOGGER);
|
||||
log::set_max_level(log::LevelFilter::Trace);
|
||||
group.bench_function("global", &mut iter);
|
||||
}
|
||||
|
||||
pub fn for_all_dispatches(
|
||||
group: &mut criterion::BenchmarkGroup<'_, WallTime>,
|
||||
mut iter: impl FnMut(&mut Bencher<'_, WallTime>),
|
||||
) {
|
||||
// first, run benchmarks with no subscriber
|
||||
group.bench_function("none", &mut iter);
|
||||
|
||||
// then, run benchmarks with a scoped default subscriber
|
||||
tracing::subscriber::with_default(EnabledSubscriber, || {
|
||||
group.bench_function("scoped", &mut iter)
|
||||
});
|
||||
|
||||
// finally, set a global default subscriber, and run the benchmarks again.
|
||||
tracing::subscriber::set_global_default(EnabledSubscriber)
|
||||
.expect("global default should not have already been set!");
|
||||
let _ = log::set_logger(&NOP_LOGGER);
|
||||
log::set_max_level(log::LevelFilter::Trace);
|
||||
group.bench_function("global", &mut iter);
|
||||
}
|
||||
|
||||
const NOP_LOGGER: NopLogger = NopLogger;
|
||||
|
||||
struct NopLogger;
|
||||
|
||||
impl log::Log for NopLogger {
|
||||
fn enabled(&self, _metadata: &log::Metadata) -> bool {
|
||||
true
|
||||
}
|
||||
|
||||
fn log(&self, record: &log::Record) {
|
||||
if self.enabled(record.metadata()) {
|
||||
let mut this = self;
|
||||
let _ = write!(this, "{}", record.args());
|
||||
}
|
||||
}
|
||||
|
||||
fn flush(&self) {}
|
||||
}
|
||||
|
||||
impl Write for &NopLogger {
|
||||
fn write_str(&mut self, s: &str) -> std::fmt::Result {
|
||||
black_box(s);
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
||||
/// Simulates a subscriber that records span data.
|
||||
struct VisitingSubscriber(Mutex<String>);
|
||||
|
||||
struct Visitor<'a>(MutexGuard<'a, String>);
|
||||
|
||||
impl<'a> field::Visit for Visitor<'a> {
|
||||
fn record_debug(&mut self, _field: &field::Field, value: &dyn fmt::Debug) {
|
||||
let _ = write!(&mut *self.0, "{:?}", value);
|
||||
}
|
||||
}
|
||||
|
||||
impl tracing::Subscriber for VisitingSubscriber {
|
||||
fn new_span(&self, span: &span::Attributes<'_>) -> Id {
|
||||
let mut visitor = Visitor(self.0.lock().unwrap());
|
||||
span.record(&mut visitor);
|
||||
Id::from_u64(0xDEAD_FACE)
|
||||
}
|
||||
|
||||
fn record(&self, _span: &Id, values: &span::Record<'_>) {
|
||||
let mut visitor = Visitor(self.0.lock().unwrap());
|
||||
values.record(&mut visitor);
|
||||
}
|
||||
|
||||
fn event(&self, event: &Event<'_>) {
|
||||
let mut visitor = Visitor(self.0.lock().unwrap());
|
||||
event.record(&mut visitor);
|
||||
}
|
||||
|
||||
fn record_follows_from(&self, span: &Id, follows: &Id) {
|
||||
let _ = (span, follows);
|
||||
}
|
||||
|
||||
fn enabled(&self, metadata: &Metadata<'_>) -> bool {
|
||||
let _ = metadata;
|
||||
true
|
||||
}
|
||||
|
||||
fn enter(&self, span: &Id) {
|
||||
let _ = span;
|
||||
}
|
||||
|
||||
fn exit(&self, span: &Id) {
|
||||
let _ = span;
|
||||
}
|
||||
}
|
||||
|
||||
/// A subscriber that is enabled but otherwise does nothing.
|
||||
struct EnabledSubscriber;
|
||||
|
||||
impl tracing::Subscriber for EnabledSubscriber {
|
||||
fn new_span(&self, span: &span::Attributes<'_>) -> Id {
|
||||
let _ = span;
|
||||
Id::from_u64(0xDEAD_FACE)
|
||||
}
|
||||
|
||||
fn event(&self, event: &Event<'_>) {
|
||||
let _ = event;
|
||||
}
|
||||
|
||||
fn record(&self, span: &Id, values: &span::Record<'_>) {
|
||||
let _ = (span, values);
|
||||
}
|
||||
|
||||
fn record_follows_from(&self, span: &Id, follows: &Id) {
|
||||
let _ = (span, follows);
|
||||
}
|
||||
|
||||
fn enabled(&self, metadata: &Metadata<'_>) -> bool {
|
||||
let _ = metadata;
|
||||
true
|
||||
}
|
||||
|
||||
fn enter(&self, span: &Id) {
|
||||
let _ = span;
|
||||
}
|
||||
|
||||
fn exit(&self, span: &Id) {
|
||||
let _ = span;
|
||||
}
|
||||
}
|
||||
23
third-party/vendor/tracing/benches/span_fields.rs
vendored
Normal file
23
third-party/vendor/tracing/benches/span_fields.rs
vendored
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
use criterion::{criterion_group, criterion_main, Criterion};
|
||||
use tracing::{span, Level};
|
||||
|
||||
mod shared;
|
||||
|
||||
fn bench(c: &mut Criterion) {
|
||||
shared::for_all_recording(&mut c.benchmark_group("span_fields"), |b| {
|
||||
b.iter(|| {
|
||||
let span = span!(
|
||||
Level::TRACE,
|
||||
"span",
|
||||
foo = "foo",
|
||||
bar = "bar",
|
||||
baz = 3,
|
||||
quuux = tracing::field::debug(0.99)
|
||||
);
|
||||
criterion::black_box(span)
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
criterion_group!(benches, bench);
|
||||
criterion_main!(benches);
|
||||
13
third-party/vendor/tracing/benches/span_no_fields.rs
vendored
Normal file
13
third-party/vendor/tracing/benches/span_no_fields.rs
vendored
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
use criterion::{criterion_group, criterion_main, Criterion};
|
||||
use tracing::{span, Level};
|
||||
|
||||
mod shared;
|
||||
|
||||
fn bench(c: &mut Criterion) {
|
||||
shared::for_all_recording(&mut c.benchmark_group("span_no_fields"), |b| {
|
||||
b.iter(|| span!(Level::TRACE, "span"))
|
||||
});
|
||||
}
|
||||
|
||||
criterion_group!(benches, bench);
|
||||
criterion_main!(benches);
|
||||
20
third-party/vendor/tracing/benches/span_repeated.rs
vendored
Normal file
20
third-party/vendor/tracing/benches/span_repeated.rs
vendored
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
use criterion::{black_box, criterion_group, criterion_main, Criterion};
|
||||
use tracing::{span, Level};
|
||||
|
||||
mod shared;
|
||||
|
||||
fn bench(c: &mut Criterion) {
|
||||
shared::for_all_recording(&mut c.benchmark_group("span_repeated"), |b| {
|
||||
let n = black_box(N_SPANS);
|
||||
b.iter(|| (0..n).fold(mk_span(0), |_, i| mk_span(i as u64)))
|
||||
});
|
||||
}
|
||||
|
||||
#[inline]
|
||||
fn mk_span(i: u64) -> tracing::Span {
|
||||
span!(Level::TRACE, "span", i = i)
|
||||
}
|
||||
|
||||
const N_SPANS: usize = 100;
|
||||
criterion_group!(benches, bench);
|
||||
criterion_main!(benches);
|
||||
Loading…
Add table
Add a link
Reference in a new issue