File tree 8 files changed +2395
-2402
lines changed
8 files changed +2395
-2402
lines changed Load Diff This file was deleted.
Original file line number Diff line number Diff line change
1
+ #![ cfg( test) ]
2
+
3
+ extern crate test;
4
+ use self :: test:: BenchHarness ;
5
+ use std:: iter:: { range_inclusive} ;
6
+
7
+ #[ bench]
8
+ fn insert ( b : & mut BenchHarness ) {
9
+ use super :: HashMap ;
10
+
11
+ let mut m = HashMap :: new ( ) ;
12
+
13
+ for i in range_inclusive ( 1 , 1000 ) {
14
+ m. insert ( i, i) ;
15
+ }
16
+
17
+ let mut k = 1001 ;
18
+
19
+ b. iter ( || {
20
+ m. insert ( k, k) ;
21
+ k += 1 ;
22
+ } ) ;
23
+ }
24
+
25
+ #[ bench]
26
+ fn find_existing ( b : & mut BenchHarness ) {
27
+ use super :: HashMap ;
28
+
29
+ let mut m = HashMap :: new ( ) ;
30
+
31
+ for i in range_inclusive ( 1 , 1000 ) {
32
+ m. insert ( i, i) ;
33
+ }
34
+
35
+ b. iter ( || {
36
+ m. contains_key ( & 412 ) ;
37
+ } ) ;
38
+ }
39
+
40
+ #[ bench]
41
+ fn find_nonexisting ( b : & mut BenchHarness ) {
42
+ use super :: HashMap ;
43
+
44
+ let mut m = HashMap :: new ( ) ;
45
+
46
+ for i in range_inclusive ( 1 , 1000 ) {
47
+ m. insert ( i, i) ;
48
+ }
49
+
50
+ b. iter ( || {
51
+ m. contains_key ( & 2048 ) ;
52
+ } ) ;
53
+ }
54
+
55
+ #[ bench]
56
+ fn hashmap_as_queue ( b : & mut BenchHarness ) {
57
+ use super :: HashMap ;
58
+
59
+ let mut m = HashMap :: new ( ) ;
60
+
61
+ for i in range_inclusive ( 1 , 1000 ) {
62
+ m. insert ( i, i) ;
63
+ }
64
+
65
+ let mut k = 1 ;
66
+
67
+ b. iter ( || {
68
+ m. pop ( & k) ;
69
+ m. insert ( k + 1000 , k + 1000 ) ;
70
+ k += 1 ;
71
+ } ) ;
72
+ }
73
+
74
+ #[ bench]
75
+ fn find_pop_insert ( b : & mut BenchHarness ) {
76
+ use super :: HashMap ;
77
+
78
+ let mut m = HashMap :: new ( ) ;
79
+
80
+ for i in range_inclusive ( 1 , 1000 ) {
81
+ m. insert ( i, i) ;
82
+ }
83
+
84
+ let mut k = 1 ;
85
+
86
+ b. iter ( || {
87
+ m. find ( & ( k + 400 ) ) ;
88
+ m. find ( & ( k + 2000 ) ) ;
89
+ m. pop ( & k) ;
90
+ m. insert ( k + 1000 , k + 1000 ) ;
91
+ k += 1 ;
92
+ } )
93
+ }
You can’t perform that action at this time.
0 commit comments