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