11
22import FlatQueue from './index.js' ;
3- import TinyQueue from 'tinyqueue' ;
43
54const N = 1000000 ;
65const K = 1000 ;
76
87const data = [ ] ;
9- for ( let i = 0 ; i < N ; i ++ ) data [ i ] = { value : Math . random ( ) } ;
10-
11-
12- const q = new TinyQueue ( [ ] , ( a , b ) => a . value - b . value ) ;
13-
14- console . time ( `tinyqueue push ${ N } ` ) ;
15- for ( let i = 0 ; i < N ; i ++ ) q . push ( data [ i ] ) ;
16- console . timeEnd ( `tinyqueue push ${ N } ` ) ;
17-
18- console . time ( `tinyqueue pop ${ N } ` ) ;
19- for ( let i = 0 ; i < N ; i ++ ) q . pop ( ) ;
20- console . timeEnd ( `tinyqueue pop ${ N } ` ) ;
21-
22- console . time ( `tinyqueue push/pop ${ N } ` ) ;
23- for ( let i = 0 ; i < N ; i += K ) {
24- for ( let j = 0 ; j < K ; j ++ ) q . push ( data [ i + j ] ) ;
25- for ( let j = 0 ; j < K ; j ++ ) q . pop ( ) ;
26- }
27- console . timeEnd ( `tinyqueue push/pop ${ N } ` ) ;
28-
8+ for ( let i = 0 ; i < N ; i ++ ) data [ i ] = Math . round ( 1000 * Math . random ( ) ) ;
299
3010const f = new FlatQueue ( ) ;
3111
3212console . time ( `flatqueue push ${ N } ` ) ;
33- for ( let i = 0 ; i < N ; i ++ ) f . push ( i , data [ i ] . value ) ;
13+ for ( let i = 0 ; i < N ; i ++ ) f . push ( i , data [ i ] ) ;
3414console . timeEnd ( `flatqueue push ${ N } ` ) ;
3515
3616console . time ( `flatqueue pop ${ N } ` ) ;
@@ -39,7 +19,7 @@ console.timeEnd(`flatqueue pop ${N}`);
3919
4020console . time ( `flatqueue push/pop ${ N } ` ) ;
4121for ( let i = 0 ; i < N ; i += K ) {
42- for ( let j = 0 ; j < K ; j ++ ) f . push ( i , data [ i + j ] . value ) ;
22+ for ( let j = 0 ; j < K ; j ++ ) f . push ( i , data [ i + j ] ) ;
4323 for ( let j = 0 ; j < K ; j ++ ) f . pop ( ) ;
4424}
4525console . timeEnd ( `flatqueue push/pop ${ N } ` ) ;
0 commit comments