diff options
| author | Graydon Hoare <graydon@mozilla.com> | 2013-07-22 10:52:38 -0700 |
|---|---|---|
| committer | Graydon Hoare <graydon@mozilla.com> | 2013-07-22 16:56:10 -0700 |
| commit | e5cbede103fca018089b113ec35f0cf863df7106 (patch) | |
| tree | 0dbe717262ccbb9b3f47d9e2f2e1b152b0e3f81e /src/libstd | |
| parent | 786318f61b3d41238937d194970d2aaac34886cd (diff) | |
| download | rust-e5cbede103fca018089b113ec35f0cf863df7106.tar.gz rust-e5cbede103fca018089b113ec35f0cf863df7106.zip | |
std: add preliminary str benchmark.
Diffstat (limited to 'src/libstd')
| -rw-r--r-- | src/libstd/str.rs | 45 |
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); + } + } +} |
