summaryrefslogtreecommitdiffstats
path: root/third_party/rust/mime/benches
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/rust/mime/benches')
-rw-r--r--third_party/rust/mime/benches/cmp.rs46
-rw-r--r--third_party/rust/mime/benches/fmt.rs19
-rw-r--r--third_party/rust/mime/benches/parse.rs29
3 files changed, 94 insertions, 0 deletions
diff --git a/third_party/rust/mime/benches/cmp.rs b/third_party/rust/mime/benches/cmp.rs
new file mode 100644
index 0000000000..b7c64f64f6
--- /dev/null
+++ b/third_party/rust/mime/benches/cmp.rs
@@ -0,0 +1,46 @@
+#![feature(test)]
+
+extern crate mime;
+extern crate test;
+
+use mime::*;
+use test::Bencher;
+
+#[bench]
+fn bench_eq_parsed(b: &mut Bencher) {
+ let mime = "text/plain; charset=utf-8".parse::<Mime>().unwrap();
+ b.bytes = mime.as_ref().len() as u64;
+ b.iter(|| {
+ assert_eq!(mime, TEXT_PLAIN_UTF_8);
+ })
+}
+
+#[bench]
+fn bench_eq_consts(b: &mut Bencher) {
+ let mime = TEXT_PLAIN_UTF_8;
+ b.bytes = mime.as_ref().len() as u64;
+ b.iter(|| {
+ assert_eq!(mime, TEXT_PLAIN_UTF_8);
+ });
+}
+
+
+#[bench]
+fn bench_ne_consts(b: &mut Bencher) {
+ let one = TEXT_XML;
+ let two = TEXT_CSS;
+ b.bytes = one.as_ref().len() as u64;
+ b.iter(|| {
+ assert_ne!(one, two);
+ });
+}
+
+#[bench]
+fn bench_eq_type_(b: &mut Bencher) {
+ let mime = TEXT_PLAIN_UTF_8;
+ let name = TEXT;
+ b.bytes = name.as_ref().len() as u64;
+ b.iter(|| {
+ assert_eq!(mime.type_(), name);
+ });
+}
diff --git a/third_party/rust/mime/benches/fmt.rs b/third_party/rust/mime/benches/fmt.rs
new file mode 100644
index 0000000000..106de1a1e6
--- /dev/null
+++ b/third_party/rust/mime/benches/fmt.rs
@@ -0,0 +1,19 @@
+#![feature(test)]
+
+extern crate mime;
+extern crate test;
+
+use test::Bencher;
+
+#[bench]
+fn bench_fmt(b: &mut Bencher) {
+ use std::fmt::Write;
+ let mime = ::mime::TEXT_PLAIN_UTF_8;
+ b.bytes = mime.to_string().as_bytes().len() as u64;
+ let mut s = String::with_capacity(64);
+ b.iter(|| {
+ let _ = write!(s, "{}", mime);
+ ::test::black_box(&s);
+ unsafe { s.as_mut_vec().set_len(0); }
+ })
+}
diff --git a/third_party/rust/mime/benches/parse.rs b/third_party/rust/mime/benches/parse.rs
new file mode 100644
index 0000000000..7d47781a0d
--- /dev/null
+++ b/third_party/rust/mime/benches/parse.rs
@@ -0,0 +1,29 @@
+#![feature(test)]
+
+extern crate mime;
+extern crate test;
+
+use mime::Mime;
+use test::Bencher;
+
+
+#[bench]
+fn bench_from_str(b: &mut Bencher) {
+ let s = "text/plain";
+ b.bytes = s.as_bytes().len() as u64;
+ b.iter(|| s.parse::<Mime>())
+}
+
+#[bench]
+fn bench_from_str_charset_utf8(b: &mut Bencher) {
+ let s = "text/plain; charset=utf-8";
+ b.bytes = s.as_bytes().len() as u64;
+ b.iter(|| s.parse::<Mime>())
+}
+
+#[bench]
+fn bench_from_str_extended(b: &mut Bencher) {
+ let s = "text/plain; charset=utf-8; foo=bar";
+ b.bytes = s.as_bytes().len() as u64;
+ b.iter(|| s.parse::<Mime>())
+}