about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
authorStein Somers <git@steinsomers.be>2019-11-14 00:32:36 +0100
committerStein Somers <git@steinsomers.be>2019-11-14 12:59:35 +0100
commit4decb58a64fd3d0a0da5cbea4a77327996cbe44a (patch)
tree0eaf1df1090833002a4e3539eefd9ac2337d64e9 /src/libstd
parenta2491ee4e6c74451371aee8f4a2a5786d7a35406 (diff)
downloadrust-4decb58a64fd3d0a0da5cbea4a77327996cbe44a.tar.gz
rust-4decb58a64fd3d0a0da5cbea4a77327996cbe44a.zip
introduce benchmarks of HashSet operations
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/benches/hash/map.rs (renamed from src/libstd/collections/hash/bench.rs)15
-rw-r--r--src/libstd/benches/hash/mod.rs2
-rw-r--r--src/libstd/benches/hash/set_ops.rs42
-rw-r--r--src/libstd/benches/lib.rs5
-rw-r--r--src/libstd/collections/hash/mod.rs1
5 files changed, 50 insertions, 15 deletions
diff --git a/src/libstd/collections/hash/bench.rs b/src/libstd/benches/hash/map.rs
index 7f5add05436..25425c5968e 100644
--- a/src/libstd/collections/hash/bench.rs
+++ b/src/libstd/benches/hash/map.rs
@@ -1,11 +1,10 @@
 #![cfg(test)]
 
 use test::Bencher;
+use std::collections::HashMap;
 
 #[bench]
 fn new_drop(b: &mut Bencher) {
-    use super::map::HashMap;
-
     b.iter(|| {
         let m: HashMap<i32, i32> = HashMap::new();
         assert_eq!(m.len(), 0);
@@ -14,8 +13,6 @@ fn new_drop(b: &mut Bencher) {
 
 #[bench]
 fn new_insert_drop(b: &mut Bencher) {
-    use super::map::HashMap;
-
     b.iter(|| {
         let mut m = HashMap::new();
         m.insert(0, 0);
@@ -25,8 +22,6 @@ fn new_insert_drop(b: &mut Bencher) {
 
 #[bench]
 fn grow_by_insertion(b: &mut Bencher) {
-    use super::map::HashMap;
-
     let mut m = HashMap::new();
 
     for i in 1..1001 {
@@ -43,8 +38,6 @@ fn grow_by_insertion(b: &mut Bencher) {
 
 #[bench]
 fn find_existing(b: &mut Bencher) {
-    use super::map::HashMap;
-
     let mut m = HashMap::new();
 
     for i in 1..1001 {
@@ -60,8 +53,6 @@ fn find_existing(b: &mut Bencher) {
 
 #[bench]
 fn find_nonexisting(b: &mut Bencher) {
-    use super::map::HashMap;
-
     let mut m = HashMap::new();
 
     for i in 1..1001 {
@@ -77,8 +68,6 @@ fn find_nonexisting(b: &mut Bencher) {
 
 #[bench]
 fn hashmap_as_queue(b: &mut Bencher) {
-    use super::map::HashMap;
-
     let mut m = HashMap::new();
 
     for i in 1..1001 {
@@ -96,8 +85,6 @@ fn hashmap_as_queue(b: &mut Bencher) {
 
 #[bench]
 fn get_remove_insert(b: &mut Bencher) {
-    use super::map::HashMap;
-
     let mut m = HashMap::new();
 
     for i in 1..1001 {
diff --git a/src/libstd/benches/hash/mod.rs b/src/libstd/benches/hash/mod.rs
new file mode 100644
index 00000000000..42401a21b76
--- /dev/null
+++ b/src/libstd/benches/hash/mod.rs
@@ -0,0 +1,2 @@
+mod map;
+mod set_ops;
diff --git a/src/libstd/benches/hash/set_ops.rs b/src/libstd/benches/hash/set_ops.rs
new file mode 100644
index 00000000000..1a4c4a66ee9
--- /dev/null
+++ b/src/libstd/benches/hash/set_ops.rs
@@ -0,0 +1,42 @@
+use std::collections::HashSet;
+use test::Bencher;
+
+#[bench]
+fn set_difference(b: &mut Bencher) {
+    let small: HashSet<_> = (0..10).collect();
+    let large: HashSet<_> = (0..100).collect();
+
+    b.iter(|| small.difference(&large).count());
+}
+
+#[bench]
+fn set_is_subset(b: &mut Bencher) {
+    let small: HashSet<_> = (0..10).collect();
+    let large: HashSet<_> = (0..100).collect();
+
+    b.iter(|| small.is_subset(&large));
+}
+
+#[bench]
+fn set_intersection(b: &mut Bencher) {
+    let small: HashSet<_> = (0..10).collect();
+    let large: HashSet<_> = (0..100).collect();
+
+    b.iter(|| small.intersection(&large).count());
+}
+
+#[bench]
+fn set_symmetric_difference(b: &mut Bencher) {
+    let small: HashSet<_> = (0..10).collect();
+    let large: HashSet<_> = (0..100).collect();
+
+    b.iter(|| small.symmetric_difference(&large).count());
+}
+
+#[bench]
+fn set_union(b: &mut Bencher) {
+    let small: HashSet<_> = (0..10).collect();
+    let large: HashSet<_> = (0..100).collect();
+
+    b.iter(|| small.union(&large).count());
+}
diff --git a/src/libstd/benches/lib.rs b/src/libstd/benches/lib.rs
new file mode 100644
index 00000000000..4d1cf7fab7b
--- /dev/null
+++ b/src/libstd/benches/lib.rs
@@ -0,0 +1,5 @@
+#![feature(test)]
+
+extern crate test;
+
+mod hash;
diff --git a/src/libstd/collections/hash/mod.rs b/src/libstd/collections/hash/mod.rs
index a6d89a4d32a..348820af54b 100644
--- a/src/libstd/collections/hash/mod.rs
+++ b/src/libstd/collections/hash/mod.rs
@@ -1,5 +1,4 @@
 //! Unordered containers, implemented as hash-tables
 
-mod bench;
 pub mod map;
 pub mod set;