about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
authorGraydon Hoare <graydon@mozilla.com>2013-07-22 10:52:38 -0700
committerGraydon Hoare <graydon@mozilla.com>2013-07-22 16:56:10 -0700
commite5cbede103fca018089b113ec35f0cf863df7106 (patch)
tree0dbe717262ccbb9b3f47d9e2f2e1b152b0e3f81e /src/libstd
parent786318f61b3d41238937d194970d2aaac34886cd (diff)
downloadrust-e5cbede103fca018089b113ec35f0cf863df7106.tar.gz
rust-e5cbede103fca018089b113ec35f0cf863df7106.zip
std: add preliminary str benchmark.
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/str.rs45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/libstd/str.rs b/src/libstd/str.rs
index 125df156ed0..6876bf3da7c 100644
--- a/src/libstd/str.rs
+++ b/src/libstd/str.rs
@@ -3532,3 +3532,48 @@ mod tests {
         assert_eq!(5, sum_len([s.as_slice()]));
     }
 }
+
+#[cfg(test)]
+mod bench {
+    use extra::test::BenchHarness;
+    use str;
+
+    #[bench]
+    fn is_utf8_100_ascii(bh: &mut BenchHarness) {
+
+        let s = bytes!("Hello there, the quick brown fox jumped over the lazy dog! \
+                        Lorem ipsum dolor sit amet, consectetur. ");
+
+        assert_eq!(100, s.len());
+        do bh.iter {
+            str::is_utf8(s);
+        }
+    }
+
+    #[bench]
+    fn is_utf8_100_multibyte(bh: &mut BenchHarness) {
+        let s = bytes!("πŒ€πŒ–πŒ‹πŒ„πŒ‘πŒ‰ΰΈ›ΰΈ£Ψ―ΩˆΩ„Ψ© Ψ§Ω„ΩƒΩˆΩŠΨͺΰΈ—ΰΈ¨ΰΉ„ΰΈ—ΰΈ’δΈ­εŽπ…πŒΏπŒ»π†πŒΉπŒ»πŒ°");
+        assert_eq!(100, s.len());
+        do bh.iter {
+            str::is_utf8(s);
+        }
+    }
+
+    #[bench]
+    fn map_chars_100_ascii(bh: &mut BenchHarness) {
+        let s = "HelloHelloHelloHelloHelloHelloHelloHelloHelloHello\
+                 HelloHelloHelloHelloHelloHelloHelloHelloHelloHello";
+        do bh.iter {
+            s.map_chars(|c| ((c as uint) + 1) as char);
+        }
+    }
+
+    #[bench]
+    fn map_chars_100_multibytes(bh: &mut BenchHarness) {
+        let s = "πŒ€πŒ–πŒ‹πŒ„πŒ‘πŒ€πŒ–πŒ‹πŒ„πŒ‘πŒ€πŒ–πŒ‹πŒ„πŒ‘πŒ€πŒ–πŒ‹πŒ„πŒ‘πŒ€πŒ–πŒ‹πŒ„πŒ‘πŒ€πŒ–πŒ‹πŒ„πŒ‘πŒ€πŒ–πŒ‹πŒ„πŒ‘πŒ€πŒ–πŒ‹πŒ„πŒ‘πŒ€πŒ–πŒ‹πŒ„πŒ‘πŒ€πŒ–πŒ‹πŒ„πŒ‘\
+                 πŒ€πŒ–πŒ‹πŒ„πŒ‘πŒ€πŒ–πŒ‹πŒ„πŒ‘πŒ€πŒ–πŒ‹πŒ„πŒ‘πŒ€πŒ–πŒ‹πŒ„πŒ‘πŒ€πŒ–πŒ‹πŒ„πŒ‘πŒ€πŒ–πŒ‹πŒ„πŒ‘πŒ€πŒ–πŒ‹πŒ„πŒ‘πŒ€πŒ–πŒ‹πŒ„πŒ‘πŒ€πŒ–πŒ‹πŒ„πŒ‘πŒ€πŒ–πŒ‹πŒ„πŒ‘";
+        do bh.iter {
+            s.map_chars(|c| ((c as uint) + 1) as char);
+        }
+    }
+}