mirror of https://github.com/lukechilds/node.git
Browse Source
PR-URL: https://github.com/nodejs/node/pull/12361 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net>v7.x
committed by
Evan Lucas
2 changed files with 120 additions and 46 deletions
@ -0,0 +1,70 @@ |
|||
'use strict'; |
|||
|
|||
const common = require('../common.js'); |
|||
const bench = common.createBenchmark(main, { |
|||
encoding: [ |
|||
'', 'utf8', 'ascii', 'hex', 'UCS-2', 'utf16le', 'latin1', 'binary' |
|||
], |
|||
args: [ '', 'offset', 'offset+length' ], |
|||
len: [10, 2048], |
|||
n: [1e7] |
|||
}); |
|||
|
|||
function main(conf) { |
|||
const len = +conf.len; |
|||
const n = +conf.n; |
|||
const encoding = conf.encoding; |
|||
const args = conf.args; |
|||
|
|||
const string = 'a'.repeat(len); |
|||
const buf = Buffer.allocUnsafe(len); |
|||
|
|||
var i; |
|||
|
|||
switch (args) { |
|||
case 'offset': |
|||
if (encoding) { |
|||
bench.start(); |
|||
for (i = 0; i < n; ++i) { |
|||
buf.write(string, 0, encoding); |
|||
} |
|||
bench.end(n); |
|||
} else { |
|||
bench.start(); |
|||
for (i = 0; i < n; ++i) { |
|||
buf.write(string, 0); |
|||
} |
|||
bench.end(n); |
|||
} |
|||
break; |
|||
case 'offset+length': |
|||
if (encoding) { |
|||
bench.start(); |
|||
for (i = 0; i < n; ++i) { |
|||
buf.write(string, 0, buf.length, encoding); |
|||
} |
|||
bench.end(n); |
|||
} else { |
|||
bench.start(); |
|||
for (i = 0; i < n; ++i) { |
|||
buf.write(string, 0, buf.length); |
|||
} |
|||
bench.end(n); |
|||
} |
|||
break; |
|||
default: |
|||
if (encoding) { |
|||
bench.start(); |
|||
for (i = 0; i < n; ++i) { |
|||
buf.write(string, encoding); |
|||
} |
|||
bench.end(n); |
|||
} else { |
|||
bench.start(); |
|||
for (i = 0; i < n; ++i) { |
|||
buf.write(string); |
|||
} |
|||
bench.end(n); |
|||
} |
|||
} |
|||
} |
Loading…
Reference in new issue