From f7511dc2c11112acaa0db599956edee3de5a89f2 Mon Sep 17 00:00:00 2001 From: edef Date: Wed, 15 Apr 2015 15:54:07 -0400 Subject: [PATCH] add a context creation benchmark --- benches/context_new.rs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 benches/context_new.rs diff --git a/benches/context_new.rs b/benches/context_new.rs new file mode 100644 index 0000000..ec2546e --- /dev/null +++ b/benches/context_new.rs @@ -0,0 +1,22 @@ +#![feature(test)] +extern crate test; +extern crate lwkt; +use lwkt::Context; + +static mut ctx_slot: *mut Context = 0 as *mut Context; + +#[bench] +fn context_new(b: &mut test::Bencher) { + b.iter(|| unsafe { + let mut ctx = Context::new(move || { + let ctx_ptr = ctx_slot; + loop { + (*ctx_ptr).swap() + } + }); + + ctx_slot = &mut ctx; + + ctx.swap(); + }) +}