File tree Expand file tree Collapse file tree 1 file changed +48
-0
lines changed Expand file tree Collapse file tree 1 file changed +48
-0
lines changed Original file line number Diff line number Diff line change @@ -48,6 +48,22 @@ fn grow_by_insertion(b: &mut Bencher) {
48
48
} ) ;
49
49
}
50
50
51
+ #[ bench]
52
+ fn grow_by_insertion_kb ( b : & mut Bencher ) {
53
+ let mut m = new_map ( ) ;
54
+ let kb = 1024 ;
55
+ for i in 1 ..1001 {
56
+ m. insert ( i * kb, i) ;
57
+ }
58
+
59
+ let mut k = 1001 * kb;
60
+
61
+ b. iter ( || {
62
+ m. insert ( k, k) ;
63
+ k += kb;
64
+ } ) ;
65
+ }
66
+
51
67
#[ bench]
52
68
fn find_existing ( b : & mut Bencher ) {
53
69
let mut m = new_map ( ) ;
@@ -63,6 +79,21 @@ fn find_existing(b: &mut Bencher) {
63
79
} ) ;
64
80
}
65
81
82
+ #[ bench]
83
+ fn find_existing_high_bits ( b : & mut Bencher ) {
84
+ let mut m = new_map ( ) ;
85
+
86
+ for i in 1 ..1001_u64 {
87
+ m. insert ( i << 32 , i) ;
88
+ }
89
+
90
+ b. iter ( || {
91
+ for i in 1 ..1001_u64 {
92
+ m. contains_key ( & ( i << 32 ) ) ;
93
+ }
94
+ } ) ;
95
+ }
96
+
66
97
#[ bench]
67
98
fn find_nonexisting ( b : & mut Bencher ) {
68
99
let mut m = new_map ( ) ;
@@ -113,3 +144,20 @@ fn get_remove_insert(b: &mut Bencher) {
113
144
k += 1 ;
114
145
} )
115
146
}
147
+
148
+ #[ bench]
149
+ fn insert_8_char_string ( b : & mut Bencher ) {
150
+ let mut strings: Vec < _ > = Vec :: new ( ) ;
151
+ for i in 1 ..1001 {
152
+ strings. push ( format ! ( "{:x}" , -i) ) ;
153
+ }
154
+
155
+
156
+ let mut m = new_map ( ) ;
157
+ b. iter ( || {
158
+ for key in & strings {
159
+ m. insert ( key, key) ;
160
+ }
161
+ } )
162
+
163
+ }
You can’t perform that action at this time.
0 commit comments