mirror of https://github.com/lukechilds/node.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
1.5 KiB
72 lines
1.5 KiB
'use strict';
|
|
|
|
const common = require('../common.js');
|
|
|
|
const configs = {
|
|
n: [1e3],
|
|
mode: [
|
|
'multi-concat',
|
|
'multi-join',
|
|
'multi-template',
|
|
'to-string-string',
|
|
'to-string-concat',
|
|
'to-string-template',
|
|
],
|
|
};
|
|
|
|
const bench = common.createBenchmark(main, configs);
|
|
|
|
|
|
function main(conf) {
|
|
const n = +conf.n;
|
|
|
|
const str = 'abc';
|
|
const num = 123;
|
|
|
|
let string;
|
|
|
|
switch (conf.mode) {
|
|
case '':
|
|
// Empty string falls through to next line as default, mostly for tests.
|
|
case 'multi-concat':
|
|
bench.start();
|
|
for (let i = 0; i < n; i++)
|
|
string = '...' + str + ', ' + num + ', ' + str + ', ' + num + '.';
|
|
bench.end(n);
|
|
break;
|
|
case 'multi-join':
|
|
bench.start();
|
|
for (let i = 0; i < n; i++)
|
|
string = ['...', str, ', ', num, ', ', str, ', ', num, '.'].join('');
|
|
bench.end(n);
|
|
break;
|
|
case 'multi-template':
|
|
bench.start();
|
|
for (let i = 0; i < n; i++)
|
|
string = `...${str}, ${num}, ${str}, ${num}.`;
|
|
bench.end(n);
|
|
break;
|
|
case 'to-string-string':
|
|
bench.start();
|
|
for (let i = 0; i < n; i++)
|
|
string = String(num);
|
|
bench.end(n);
|
|
break;
|
|
case 'to-string-concat':
|
|
bench.start();
|
|
for (let i = 0; i < n; i++)
|
|
string = '' + num;
|
|
bench.end(n);
|
|
break;
|
|
case 'to-string-template':
|
|
bench.start();
|
|
for (let i = 0; i < n; i++)
|
|
string = `${num}`;
|
|
bench.end(n);
|
|
break;
|
|
default:
|
|
throw new Error('Unexpected method');
|
|
}
|
|
|
|
return string;
|
|
}
|
|
|