@@ -12,37 +12,37 @@ const bench = common.createBenchmark(main, {
1212'string-utf8' ,
1313'string-base64' ,
1414'object' ,
15+ 'uint8array' ,
16+ 'uint16array' ,
1517] ,
1618len : [ 100 , 2048 ] ,
1719n : [ 8e5 ]
1820} ) ;
1921
2022function 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-
2823let i = 0 ;
2924
3025switch ( source ) {
31- case 'array' :
26+ case 'array' : {
27+ const array = new Array ( len ) . fill ( 42 ) ;
3228bench . start ( ) ;
3329for ( i = 0 ; i < n ; i ++ ) {
3430Buffer . from ( array ) ;
3531}
3632bench . end ( n ) ;
3733break ;
38- case 'arraybuffer' :
34+ }
35+ case 'arraybuffer' : {
36+ const arrayBuf = new ArrayBuffer ( len ) ;
3937bench . start ( ) ;
4038for ( i = 0 ; i < n ; i ++ ) {
4139Buffer . from ( arrayBuf ) ;
4240}
4341bench . end ( n ) ;
4442break ;
45- case 'arraybuffer-middle' :
43+ }
44+ case 'arraybuffer-middle' : {
45+ const arrayBuf = new ArrayBuffer ( len ) ;
4646const offset = ~ ~ ( len / 4 ) ;
4747const length = ~ ~ ( len / 2 ) ;
4848bench . start ( ) ;
@@ -51,48 +51,70 @@ function main({ len, n, source }) {
5151}
5252bench . end ( n ) ;
5353break ;
54- case 'buffer' :
54+ }
55+ case 'buffer' : {
56+ const buffer = Buffer . allocUnsafe ( len ) ;
5557bench . start ( ) ;
5658for ( i = 0 ; i < n ; i ++ ) {
5759Buffer . from ( buffer ) ;
5860}
5961bench . end ( n ) ;
6062break ;
61- case 'uint8array' :
63+ }
64+ case 'uint8array' : {
65+ const uint8array = new Uint8Array ( len ) ;
6266bench . start ( ) ;
6367for ( i = 0 ; i < n ; i ++ ) {
6468Buffer . from ( uint8array ) ;
6569}
6670bench . end ( n ) ;
6771break ;
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 ) ;
6984bench . start ( ) ;
7085for ( i = 0 ; i < n ; i ++ ) {
7186Buffer . from ( str ) ;
7287}
7388bench . end ( n ) ;
7489break ;
75- case 'string-utf8' :
90+ }
91+ case 'string-utf8' : {
92+ const str = 'a' . repeat ( len ) ;
7693bench . start ( ) ;
7794for ( i = 0 ; i < n ; i ++ ) {
7895Buffer . from ( str , 'utf8' ) ;
7996}
8097bench . end ( n ) ;
8198break ;
82- case 'string-base64' :
99+ }
100+ case 'string-base64' : {
101+ const str = 'a' . repeat ( len ) ;
83102bench . start ( ) ;
84103for ( i = 0 ; i < n ; i ++ ) {
85104Buffer . from ( str , 'base64' ) ;
86105}
87106bench . end ( n ) ;
88107break ;
89- case 'object' :
108+ }
109+ case 'object' : {
110+ const obj = { length : null } ; // Results in a new, empty Buffer
90111bench . start ( ) ;
91112for ( i = 0 ; i < n ; i ++ ) {
92113Buffer . from ( obj ) ;
93114}
94115bench . end ( n ) ;
95116break ;
117+ }
96118default :
97119assert . fail ( 'Should not get here' ) ;
98120}
0 commit comments