]> git.lizzy.rs Git - rust.git/commitdiff
std: add #[bench] benchmarks for global and local heaps.
authorGraydon Hoare <graydon@mozilla.com>
Mon, 22 Jul 2013 18:42:47 +0000 (11:42 -0700)
committerGraydon Hoare <graydon@mozilla.com>
Mon, 22 Jul 2013 23:56:10 +0000 (16:56 -0700)
src/libstd/rt/global_heap.rs
src/libstd/rt/local_heap.rs

index 580390c19530edcdaa0ef9b54ee60c0b240acd53..54e9cb263dbe7ffc23835d733d65dfbac1bf451d 100644 (file)
@@ -101,3 +101,22 @@ pub unsafe fn exchange_free_(ptr: *c_char) {
 pub unsafe fn exchange_free(ptr: *c_char) {
     free(ptr as *c_void);
 }
+
+#[cfg(test)]
+mod bench {
+    use extra::test::BenchHarness;
+
+    #[bench]
+    fn alloc_owned_small(bh: &mut BenchHarness) {
+        do bh.iter {
+            ~10;
+        }
+    }
+
+    #[bench]
+    fn alloc_owned_big(bh: &mut BenchHarness) {
+        do bh.iter {
+            ~[10, ..1000];
+        }
+    }
+}
index c909bdb62850aa7d51d5ff31bfedd62aad4f4ba8..85917ae3edf12c1f0206b6512d902303fcd41a14 100644 (file)
@@ -135,3 +135,22 @@ fn rust_boxed_region_realloc(region: *BoxedRegion,
     fn rust_boxed_region_free(region: *BoxedRegion, box: *OpaqueBox);
     fn rust_current_boxed_region() -> *BoxedRegion;
 }
+
+#[cfg(test)]
+mod bench {
+    use extra::test::BenchHarness;
+
+    #[bench]
+    fn alloc_managed_small(bh: &mut BenchHarness) {
+        do bh.iter {
+            @10;
+        }
+    }
+
+    #[bench]
+    fn alloc_managed_big(bh: &mut BenchHarness) {
+        do bh.iter {
+            @[10, ..1000];
+        }
+    }
+}