-
Notifications
You must be signed in to change notification settings - Fork 29.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
benchmark: add remaining path benchmarks & optimize
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: #2103 Reviewed-By: Brendan Ashworth <brendan.ashworth@me.com>
- Loading branch information
1 parent
ac70bc8
commit 99d9d7e
Showing
10 changed files
with
147 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters