Markus Westerlind пре 8 година
родитељ
комит
c493261bdf
2 измењених фајлова са 24 додато и 0 уклоњено
  1. 6 0
      Cargo.toml
  2. 18 0
      benches/parse_url.rs

+ 6 - 0
Cargo.toml

@@ -35,6 +35,8 @@ rustc-test = "0.3"
 rustc-serialize = "0.3"
 serde_json = ">=0.6.1, <0.9"
 
+bencher = "0.1"
+
 [features]
 query_encoding = ["encoding"]
 heap_size = ["heapsize"]
@@ -48,5 +50,9 @@ percent-encoding = { version = "1.0.0", path = "./percent_encoding" }
 rustc-serialize = {version = "0.3", optional = true}
 serde = {version = ">=0.6.1, <0.9", optional = true}
 
+[[bench]]
+name = "parse_url"
+harness = false
+
 [package.metadata.docs.rs]
 features = ["query_encoding"]

+ 18 - 0
benches/parse_url.rs

@@ -0,0 +1,18 @@
+#[macro_use]
+extern crate bencher;
+
+extern crate url;
+
+use bencher::{black_box, Bencher};
+
+use url::Url;
+
+fn short(bench: &mut Bencher) {
+    let url = "https://example.com/bench";
+
+    bench.bytes = url.len() as u64;
+    bench.iter(|| black_box(url).parse::<Url>().unwrap());
+}
+
+benchmark_group!(benches, short);
+benchmark_main!(benches);