]> git.lizzy.rs Git - rust.git/commitdiff
Added benchmark for pow and pow_with_uint
authorFlavio Percoco <flaper87@gmail.com>
Sat, 18 Jan 2014 18:25:38 +0000 (19:25 +0100)
committerFlavio Percoco <flaper87@gmail.com>
Sat, 18 Jan 2014 19:16:30 +0000 (20:16 +0100)
src/libstd/num/mod.rs

index bdbf0344b47eb50516ff573f3a6b19f036dea447..db1c227466beaa6b9fb3e9bf2e38d3ab8ddedaaa 100644 (file)
@@ -1684,3 +1684,24 @@ fn assert_pow<T: Eq+Clone+One+Mul<T, T>>(num: T, exp: uint) -> () {
         assert_pow(2u64, 50);
     }
 }
+
+
+#[cfg(test)]
+mod bench {
+    use num;
+    use vec;
+    use prelude::*;
+    use extra::test::BenchHarness;
+
+    #[bench]
+    fn bench_pow_function(b: &mut BenchHarness) {
+        let v = vec::from_fn(1024, |n| n);
+        b.iter(|| {v.iter().fold(0, |old, new| num::pow(old, *new));});
+    }
+
+    #[bench]
+    fn bench_pow_with_uint_function(b: &mut BenchHarness) {
+        let v = vec::from_fn(1024, |n| n);
+        b.iter(|| {v.iter().fold(0, |old, new| num::pow_with_uint(old, *new));});
+    }
+}