File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ 'use strict' ;
2+
3+ const common = require ( '../common.js' ) ;
4+ const assert = require ( 'assert' ) ;
5+ const bench = common . createBenchmark ( main , {
6+ source : [
7+ 'array' ,
8+ 'arraybuffer' ,
9+ 'arraybuffer-middle' ,
10+ 'buffer' ,
11+ 'uint8array' ,
12+ 'string' ,
13+ 'string-base64'
14+ ] ,
15+ len : [ 10 , 2048 ] ,
16+ n : [ 1024 ]
17+ } ) ;
18+
19+ function main ( conf ) {
20+ const len = + conf . len ;
21+ const n = + conf . n ;
22+
23+ const array = new Array ( len ) . fill ( 42 ) ;
24+ const arrayBuf = new ArrayBuffer ( len ) ;
25+ const str = 'a' . repeat ( len ) ;
26+ const buffer = Buffer . allocUnsafe ( len ) ;
27+ const uint8array = new Uint8Array ( len ) ;
28+
29+ var i ;
30+
31+ switch ( conf . source ) {
32+ case 'array' :
33+ bench . start ( ) ;
34+ for ( i = 0 ; i < n * 1024 ; i ++ ) {
35+ Buffer . from ( array ) ;
36+ }
37+ bench . end ( n ) ;
38+ break ;
39+ case 'arraybuffer' :
40+ bench . start ( ) ;
41+ for ( i = 0 ; i < n * 1024 ; i ++ ) {
42+ Buffer . from ( arrayBuf ) ;
43+ }
44+ bench . end ( n ) ;
45+ break ;
46+ case 'arraybuffer-middle' :
47+ const offset = ~ ~ ( len / 4 ) ;
48+ const length = ~ ~ ( len / 2 ) ;
49+ bench . start ( ) ;
50+ for ( i = 0 ; i < n * 1024 ; i ++ ) {
51+ Buffer . from ( arrayBuf , offset , length ) ;
52+ }
53+ bench . end ( n ) ;
54+ break ;
55+ case 'buffer' :
56+ bench . start ( ) ;
57+ for ( i = 0 ; i < n * 1024 ; i ++ ) {
58+ Buffer . from ( buffer ) ;
59+ }
60+ bench . end ( n ) ;
61+ break ;
62+ case 'uint8array' :
63+ bench . start ( ) ;
64+ for ( i = 0 ; i < n * 1024 ; i ++ ) {
65+ Buffer . from ( uint8array ) ;
66+ }
67+ bench . end ( n ) ;
68+ break ;
69+ case 'string' :
70+ bench . start ( ) ;
71+ for ( i = 0 ; i < n * 1024 ; i ++ ) {
72+ Buffer . from ( str ) ;
73+ }
74+ bench . end ( n ) ;
75+ break ;
76+ case 'string-base64' :
77+ bench . start ( ) ;
78+ for ( i = 0 ; i < n * 1024 ; i ++ ) {
79+ Buffer . from ( str , 'base64' ) ;
80+ }
81+ bench . end ( n ) ;
82+ break ;
83+ default :
84+ assert . fail ( null , null , 'Should not get here' ) ;
85+ }
86+ }
You can’t perform that action at this time.
0 commit comments