mirror of https://github.com/lukechilds/node.git
Browse Source
Also add a benchmark to compare both ways to create strings. PR-URL: https://github.com/nodejs/node/pull/12170 Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>v6
committed by
James M Snell
15 changed files with 63 additions and 28 deletions
@ -0,0 +1,35 @@ |
|||
'use strict'; |
|||
|
|||
const assert = require('assert'); |
|||
const common = require('../common.js'); |
|||
|
|||
const configs = { |
|||
n: [1e3], |
|||
mode: ['Array', 'repeat'], |
|||
encoding: ['ascii', 'utf8'], |
|||
size: [1e1, 1e3, 1e6], |
|||
}; |
|||
|
|||
const bench = common.createBenchmark(main, configs); |
|||
|
|||
function main(conf) { |
|||
const n = +conf.n; |
|||
const size = +conf.size; |
|||
const character = conf.encoding === 'ascii' ? 'a' : '\ud83d\udc0e'; // '🐎'
|
|||
|
|||
let str; |
|||
|
|||
if (conf.mode === 'Array') { |
|||
bench.start(); |
|||
for (let i = 0; i < n; i++) |
|||
str = new Array(size + 1).join(character); |
|||
bench.end(n); |
|||
} else { |
|||
bench.start(); |
|||
for (let i = 0; i < n; i++) |
|||
str = character.repeat(size); |
|||
bench.end(n); |
|||
} |
|||
|
|||
assert.strictEqual([...str].length, size); |
|||
} |
Loading…
Reference in new issue