#![feature(test)] #[cfg(test)] mod benches { mod ring_buffer { extern crate test; extern crate eep; use self::eep::simple_trace::{SimpleTrace, SimpleTraceBuffer}; use self::eep::traits::TraceSink; #[bench] fn small_capacity(b: &mut test::Bencher) { let mut buffer = SimpleTraceBuffer::new(100); b.iter(|| buffer.trace_event(SimpleTrace::FooEvent, None)); test::black_box(buffer); } #[bench] fn large_capacity(b: &mut test::Bencher) { let mut buffer = SimpleTraceBuffer::new(2 * 1024 * 1024); b.iter(|| buffer.trace_event(SimpleTrace::FooEvent, None)); test::black_box(buffer); } #[bench] fn in_mutex(b: &mut test::Bencher) { use std::sync::Mutex; let buffer = Mutex::new(SimpleTraceBuffer::new(2 * 1024 * 1024)); b.iter(|| { let mut buffer = buffer.lock().unwrap(); buffer.trace_event(SimpleTrace::FooEvent, None); }); test::black_box(buffer); } } mod thread_and_local_id { extern crate eep; extern crate test; use self::eep::thread_and_local_id::ThreadAndLocalId; use self::eep::traits::TraceId; #[bench] fn new_id(b: &mut test::Bencher) { ThreadAndLocalId::new_id(); b.iter(|| test::black_box(ThreadAndLocalId::new_id())); } } mod simple_trace_id { extern crate eep; extern crate test; use self::eep::simple_trace::SimpleTraceId; use self::eep::traits::TraceId; #[bench] fn new_id(b: &mut test::Bencher) { SimpleTraceId::new_id(); b.iter(|| test::black_box(SimpleTraceId::new_id())); } } #[cfg(feature = "signpost")] mod signpost { extern crate eep; extern crate test; use self::eep::signpost::Signpost; use self::eep::simple_trace::SimpleTrace; use self::eep::traits::TraceSink; #[bench] fn signpost_event(b: &mut test::Bencher) { b.iter(|| { Signpost::get().trace_event(SimpleTrace::FooEvent, None); }); } #[bench] fn signpost_start_stop(b: &mut test::Bencher) { b.iter(|| { let id = Signpost::get().trace_start(SimpleTrace::OperationThing, None); Signpost::get().trace_stop(id, SimpleTrace::OperationThing); }); } } }