diff options
author | Brian White <mscdex@mscdex.net> | 2016-02-05 22:23:29 -0500 |
---|---|---|
committer | James M Snell <jasnell@gmail.com> | 2016-02-09 20:35:35 -0800 |
commit | e1348b0819d4d2aeb9a93c98dd31b9cacd951214 (patch) | |
tree | d39cf96374c5f9dcc9d5f6da25072f3768a1e80c /benchmark/path/basename-win32.js | |
parent | 72d0f8821530bc77a369914c285a45991b2bf465 (diff) | |
download | android-node-v8-e1348b0819d4d2aeb9a93c98dd31b9cacd951214.tar.gz android-node-v8-e1348b0819d4d2aeb9a93c98dd31b9cacd951214.tar.bz2 android-node-v8-e1348b0819d4d2aeb9a93c98dd31b9cacd951214.zip |
benchmark: split path benchmarks
This commit splits each path benchmark into separate posix and
Windows benchmark files. This allows benchmarking (platform-)specific
inputs against specific platforms (only).
PR-URL: https://github.com/nodejs/node/pull/5123
Reviewed-By: Roman Reiss <me@silverwind.io>
Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'benchmark/path/basename-win32.js')
-rw-r--r-- | benchmark/path/basename-win32.js | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/benchmark/path/basename-win32.js b/benchmark/path/basename-win32.js new file mode 100644 index 0000000000..08938a2050 --- /dev/null +++ b/benchmark/path/basename-win32.js @@ -0,0 +1,43 @@ +var common = require('../common.js'); +var path = require('path'); +var v8 = require('v8'); + +var bench = common.createBenchmark(main, { + pathext: [ + '', + 'C:\\', + 'C:\\foo', + 'D:\\foo\\.bar.baz', + ['E:\\foo\\.bar.baz','.baz'].join('|'), + 'foo', + 'foo\\bar.', + ['foo\\bar.', '.'].join('|'), + '\\foo\\bar\\baz\\asdf\\quux.html', + ['\\foo\\bar\\baz\\asdf\\quux.html', '.html'].join('|') + ], + n: [1e6] +}); + +function main(conf) { + var n = +conf.n; + var p = path.win32; + var input = '' + conf.pathext; + var ext; + var extIdx = input.indexOf('|'); + if (extIdx !== -1) { + ext = input.slice(extIdx + 1); + input = input.slice(0, extIdx); + } + + // Force optimization before starting the benchmark + p.basename(input, ext); + v8.setFlagsFromString('--allow_natives_syntax'); + eval('%OptimizeFunctionOnNextCall(p.basename)'); + p.basename(input, ext); + + bench.start(); + for (var i = 0; i < n; i++) { + p.basename(input, ext); + } + bench.end(n); +} |