mirror of https://github.com/lukechilds/node.git
Browse Source
As a follow-up to 0d15161
, this commit adds benchmarks for the rest
of the path functions and also forces V8 to optimize the functions
before starting the benchmark test.
PR-URL: https://github.com/nodejs/io.js/pull/2103
Reviewed-By: Brendan Ashworth <brendan.ashworth@me.com>
v4.0.0-rc
Nathan Woltman
10 years ago
committed by
Brendan Ashworth
10 changed files with 147 additions and 0 deletions
@ -0,0 +1,26 @@ |
|||
var common = require('../common.js'); |
|||
var path = require('path'); |
|||
var v8 = require('v8'); |
|||
|
|||
var bench = common.createBenchmark(main, { |
|||
type: ['win32', 'posix'], |
|||
n: [1e6], |
|||
}); |
|||
|
|||
function main(conf) { |
|||
var n = +conf.n; |
|||
var p = path[conf.type]; |
|||
|
|||
// Force optimization before starting the benchmark
|
|||
p.basename('/foo/bar/baz/asdf/quux.html'); |
|||
v8.setFlagsFromString('--allow_natives_syntax'); |
|||
eval('%OptimizeFunctionOnNextCall(p.basename)'); |
|||
p.basename('/foo/bar/baz/asdf/quux.html'); |
|||
|
|||
bench.start(); |
|||
for (var i = 0; i < n; i++) { |
|||
p.basename('/foo/bar/baz/asdf/quux.html'); |
|||
p.basename('/foo/bar/baz/asdf/quux.html', '.html'); |
|||
} |
|||
bench.end(n); |
|||
} |
@ -0,0 +1,25 @@ |
|||
var common = require('../common.js'); |
|||
var path = require('path'); |
|||
var v8 = require('v8'); |
|||
|
|||
var bench = common.createBenchmark(main, { |
|||
type: ['win32', 'posix'], |
|||
n: [1e6], |
|||
}); |
|||
|
|||
function main(conf) { |
|||
var n = +conf.n; |
|||
var p = path[conf.type]; |
|||
|
|||
// Force optimization before starting the benchmark
|
|||
p.dirname('/foo/bar/baz/asdf/quux'); |
|||
v8.setFlagsFromString('--allow_natives_syntax'); |
|||
eval('%OptimizeFunctionOnNextCall(p.dirname)'); |
|||
p.dirname('/foo/bar/baz/asdf/quux'); |
|||
|
|||
bench.start(); |
|||
for (var i = 0; i < n; i++) { |
|||
p.dirname('/foo/bar/baz/asdf/quux'); |
|||
} |
|||
bench.end(n); |
|||
} |
@ -0,0 +1,26 @@ |
|||
var common = require('../common.js'); |
|||
var path = require('path'); |
|||
var v8 = require('v8'); |
|||
|
|||
var bench = common.createBenchmark(main, { |
|||
type: ['win32', 'posix'], |
|||
n: [1e6], |
|||
}); |
|||
|
|||
function main(conf) { |
|||
var n = +conf.n; |
|||
var p = path[conf.type]; |
|||
|
|||
// Force optimization before starting the benchmark
|
|||
p.extname('index.html'); |
|||
v8.setFlagsFromString('--allow_natives_syntax'); |
|||
eval('%OptimizeFunctionOnNextCall(p.extname)'); |
|||
p.extname('index.html'); |
|||
|
|||
bench.start(); |
|||
for (var i = 0; i < n; i++) { |
|||
p.extname('index.html'); |
|||
p.extname('index'); |
|||
} |
|||
bench.end(n); |
|||
} |
@ -0,0 +1,28 @@ |
|||
var common = require('../common.js'); |
|||
var path = require('path'); |
|||
var v8 = require('v8'); |
|||
|
|||
var bench = common.createBenchmark(main, { |
|||
type: ['win32', 'posix'], |
|||
n: [1e6], |
|||
}); |
|||
|
|||
function main(conf) { |
|||
var n = +conf.n; |
|||
var p = path[conf.type]; |
|||
var test = conf.type === 'win32' |
|||
? 'C:\\path\\dir\\index.html' |
|||
: '/home/user/dir/index.html'; |
|||
|
|||
// Force optimization before starting the benchmark
|
|||
p.parse(test); |
|||
v8.setFlagsFromString('--allow_natives_syntax'); |
|||
eval('%OptimizeFunctionOnNextCall(p.parse)'); |
|||
p.parse(test); |
|||
|
|||
bench.start(); |
|||
for (var i = 0; i < n; i++) { |
|||
p.parse(test); |
|||
} |
|||
bench.end(n); |
|||
} |
Loading…
Reference in new issue