@@ -8,7 +8,7 @@ var Benchmark = require('benchmark'),
8
8
// not benchmarking dsjslib & binarySearchTree, they're slow and so not interesting
9
9
10
10
var data = [ ] ,
11
- N = 1000 ;
11
+ N = 10000 ;
12
12
13
13
for ( var i = 0 ; i < N ; i ++ ) {
14
14
data [ i ] = Math . floor ( Math . random ( ) * N ) ;
@@ -42,7 +42,7 @@ new Benchmark.Suite()
42
42
. add ( 'functional-red-black-tree' , function ( ) {
43
43
var tree = functionalRBTree ( compare ) ;
44
44
for ( var i = 0 ; i < N ; i ++ ) {
45
- tree . insert ( data [ i ] ) ;
45
+ tree = tree . insert ( data [ i ] ) ;
46
46
}
47
47
} )
48
48
. add ( 'jsbintrees RBTree' , function ( ) {
@@ -55,7 +55,7 @@ new Benchmark.Suite()
55
55
. on ( 'cycle' , function ( event ) { console . log ( String ( event . target ) ) ; } ) . run ( ) ;
56
56
57
57
58
- console . log ( '\nsearch random item in ' + N + '-sized tree' ) ;
58
+ console . log ( '\nsearch each item in ' + N + '-sized tree' ) ;
59
59
60
60
var btree = bbtree ( compare ) ;
61
61
for ( var i = 0 ; i < N ; i ++ ) {
@@ -69,7 +69,7 @@ for (var i = 0; i < N; i++) {
69
69
70
70
var rbtree = functionalRBTree ( compare ) ;
71
71
for ( var i = 0 ; i < N ; i ++ ) {
72
- rbtree . insert ( data [ i ] ) ;
72
+ rbtree = rbtree . insert ( data [ i ] ) ;
73
73
}
74
74
75
75
var bintree = new bintrees . RBTree ( compare ) ;
@@ -88,24 +88,36 @@ function randomIndex(N) {
88
88
89
89
new Benchmark . Suite ( )
90
90
. add ( 'llrb' , function ( ) {
91
- lltree . find ( data [ randomIndex ( N ) ] ) ;
91
+ for ( var i = 0 ; i < N ; i ++ ) {
92
+ lltree . find ( data [ i ] ) ;
93
+ }
92
94
} )
93
95
. add ( 'bbtree' , function ( ) {
94
- btree . find ( data [ randomIndex ( N ) ] ) ;
96
+ for ( var i = 0 ; i < N ; i ++ ) {
97
+ btree . find ( data [ i ] ) ;
98
+ }
95
99
} )
96
100
. add ( 'bsarray' , function ( ) {
97
- arr . find ( data [ randomIndex ( N ) ] ) ;
101
+ for ( var i = 0 ; i < N ; i ++ ) {
102
+ arr . find ( data [ i ] ) ;
103
+ }
98
104
} )
99
105
. add ( 'functional-red-black-tree' , function ( ) {
100
- rbtree . get ( data [ randomIndex ( N ) ] ) ;
106
+ for ( var i = 0 ; i < N ; i ++ ) {
107
+ rbtree . get ( data [ i ] ) ;
108
+ }
101
109
} )
102
110
. add ( 'jsbintrees RBTree' , function ( ) {
103
- bintree . find ( data [ randomIndex ( N ) ] ) ;
111
+ for ( var i = 0 ; i < N ; i ++ ) {
112
+ bintree . find ( data [ i ] ) ;
113
+ }
104
114
} )
105
115
. add ( 'naive loop' , function ( ) {
106
- var key = data [ randomIndex ( N ) ] ;
107
116
for ( var i = 0 ; i < N ; i ++ ) {
108
- if ( compare ( data [ i ] , key ) === 0 ) break ;
117
+ var key = data [ i ] ;
118
+ for ( var j = 0 ; j < N ; j ++ ) {
119
+ if ( compare ( data [ j ] , key ) === 0 ) break ;
120
+ }
109
121
}
110
122
} )
111
123
. on ( 'error' , function ( event ) { console . log ( event . target . error ) ; } )
0 commit comments