mirror of https://github.com/lukechilds/node.git
Browse Source
PR-URL: https://github.com/nodejs/node/pull/5360 Reviewed-By: James M Snell <jasnell@gmail.com>v5.x
Evan Lucas
9 years ago
committed by
Jeremiah Senkpiel
1 changed files with 40 additions and 0 deletions
@ -0,0 +1,40 @@ |
|||||
|
'use strict'; |
||||
|
|
||||
|
const util = require('util'); |
||||
|
const common = require('../common'); |
||||
|
const v8 = require('v8'); |
||||
|
const bench = common.createBenchmark(main, { |
||||
|
n: [1e6] |
||||
|
, type: ['string', |
||||
|
'number', |
||||
|
'object', |
||||
|
'unknown', |
||||
|
'no-replace'] |
||||
|
}); |
||||
|
|
||||
|
const inputs = { |
||||
|
'string': ['Hello, my name is %s', 'fred'], |
||||
|
'number': ['Hi, I was born in %d', 1942], |
||||
|
'object': ['An error occurred %j', {msg: 'This is an error', code: 'ERR'}], |
||||
|
'unknown': ['hello %a', 'test'], |
||||
|
'no-replace': [1, 2] |
||||
|
}; |
||||
|
|
||||
|
function main(conf) { |
||||
|
const n = conf.n | 0; |
||||
|
const type = conf.type; |
||||
|
|
||||
|
const input = inputs[type]; |
||||
|
|
||||
|
v8.setFlagsFromString('--allow_natives_syntax'); |
||||
|
|
||||
|
util.format(input[0], input[1]); |
||||
|
eval('%OptimizeFunctionOnNextCall(util.format)'); |
||||
|
util.format(input[0], input[1]); |
||||
|
|
||||
|
bench.start(); |
||||
|
for (var i = 0; i < n; i++) { |
||||
|
util.format(input[0], input[1]); |
||||
|
} |
||||
|
bench.end(n); |
||||
|
} |
Loading…
Reference in new issue