@@ -12,37 +12,37 @@ const bench = common.createBenchmark(main, {
12
12
'string-utf8' ,
13
13
'string-base64' ,
14
14
'object' ,
15
+ 'uint8array' ,
16
+ 'uint16array' ,
15
17
] ,
16
18
len : [ 100 , 2048 ] ,
17
19
n : [ 8e5 ]
18
20
} ) ;
19
21
20
22
function main ( { len, n, source } ) {
21
- const array = new Array ( len ) . fill ( 42 ) ;
22
- const arrayBuf = new ArrayBuffer ( len ) ;
23
- const str = 'a' . repeat ( len ) ;
24
- const buffer = Buffer . allocUnsafe ( len ) ;
25
- const uint8array = new Uint8Array ( len ) ;
26
- const obj = { length : null } ; // Results in a new, empty Buffer
27
-
28
23
let i = 0 ;
29
24
30
25
switch ( source ) {
31
- case 'array' :
26
+ case 'array' : {
27
+ const array = new Array ( len ) . fill ( 42 ) ;
32
28
bench . start ( ) ;
33
29
for ( i = 0 ; i < n ; i ++ ) {
34
30
Buffer . from ( array ) ;
35
31
}
36
32
bench . end ( n ) ;
37
33
break ;
38
- case 'arraybuffer' :
34
+ }
35
+ case 'arraybuffer' : {
36
+ const arrayBuf = new ArrayBuffer ( len ) ;
39
37
bench . start ( ) ;
40
38
for ( i = 0 ; i < n ; i ++ ) {
41
39
Buffer . from ( arrayBuf ) ;
42
40
}
43
41
bench . end ( n ) ;
44
42
break ;
45
- case 'arraybuffer-middle' :
43
+ }
44
+ case 'arraybuffer-middle' : {
45
+ const arrayBuf = new ArrayBuffer ( len ) ;
46
46
const offset = ~ ~ ( len / 4 ) ;
47
47
const length = ~ ~ ( len / 2 ) ;
48
48
bench . start ( ) ;
@@ -51,48 +51,70 @@ function main({ len, n, source }) {
51
51
}
52
52
bench . end ( n ) ;
53
53
break ;
54
- case 'buffer' :
54
+ }
55
+ case 'buffer' : {
56
+ const buffer = Buffer . allocUnsafe ( len ) ;
55
57
bench . start ( ) ;
56
58
for ( i = 0 ; i < n ; i ++ ) {
57
59
Buffer . from ( buffer ) ;
58
60
}
59
61
bench . end ( n ) ;
60
62
break ;
61
- case 'uint8array' :
63
+ }
64
+ case 'uint8array' : {
65
+ const uint8array = new Uint8Array ( len ) ;
62
66
bench . start ( ) ;
63
67
for ( i = 0 ; i < n ; i ++ ) {
64
68
Buffer . from ( uint8array ) ;
65
69
}
66
70
bench . end ( n ) ;
67
71
break ;
68
- case 'string' :
72
+ }
73
+ case 'uint16array' : {
74
+ const uint16array = new Uint16Array ( len ) ;
75
+ bench . start ( ) ;
76
+ for ( i = 0 ; i < n ; i ++ ) {
77
+ Buffer . from ( uint16array ) ;
78
+ }
79
+ bench . end ( n ) ;
80
+ break ;
81
+ }
82
+ case 'string' : {
83
+ const str = 'a' . repeat ( len ) ;
69
84
bench . start ( ) ;
70
85
for ( i = 0 ; i < n ; i ++ ) {
71
86
Buffer . from ( str ) ;
72
87
}
73
88
bench . end ( n ) ;
74
89
break ;
75
- case 'string-utf8' :
90
+ }
91
+ case 'string-utf8' : {
92
+ const str = 'a' . repeat ( len ) ;
76
93
bench . start ( ) ;
77
94
for ( i = 0 ; i < n ; i ++ ) {
78
95
Buffer . from ( str , 'utf8' ) ;
79
96
}
80
97
bench . end ( n ) ;
81
98
break ;
82
- case 'string-base64' :
99
+ }
100
+ case 'string-base64' : {
101
+ const str = 'a' . repeat ( len ) ;
83
102
bench . start ( ) ;
84
103
for ( i = 0 ; i < n ; i ++ ) {
85
104
Buffer . from ( str , 'base64' ) ;
86
105
}
87
106
bench . end ( n ) ;
88
107
break ;
89
- case 'object' :
108
+ }
109
+ case 'object' : {
110
+ const obj = { length : null } ; // Results in a new, empty Buffer
90
111
bench . start ( ) ;
91
112
for ( i = 0 ; i < n ; i ++ ) {
92
113
Buffer . from ( obj ) ;
93
114
}
94
115
bench . end ( n ) ;
95
116
break ;
117
+ }
96
118
default :
97
119
assert . fail ( 'Should not get here' ) ;
98
120
}
0 commit comments