From ca5ed4cc498ad5da22c6e1c4c0b79df07a07029e Mon Sep 17 00:00:00 2001 From: Graydon Hoare Date: Mon, 22 Jul 2013 16:50:17 -0700 Subject: [PATCH] std: add benchmark for allocating-and-dropping a struct with a dtor. --- src/libstd/ops.rs | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/libstd/ops.rs b/src/libstd/ops.rs index 020131ab119..756b4a10d3c 100644 --- a/src/libstd/ops.rs +++ b/src/libstd/ops.rs @@ -81,3 +81,28 @@ pub trait Shr { pub trait Index { fn index(&self, index: &Index) -> Result; } + +#[cfg(test)] +mod bench { + + use extra::test::BenchHarness; + use ops::Drop; + + // Overhead of dtors + + struct HasDtor { + x: int + } + + impl Drop for HasDtor { + fn drop(&self) { + } + } + + #[bench] + fn alloc_obj_with_dtor(bh: &mut BenchHarness) { + do bh.iter { + HasDtor { x : 10 }; + } + } +} \ No newline at end of file -- 2.44.0