mirror of https://github.com/lukechilds/node.git
Browse Source
The benchmarks included also work for the previous JS implementation of fs.realpath(). In case the new implementation of realpath() needs to be reverted, we want these changes to stick around. PR-URL: https://github.com/nodejs/node/pull/7899 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net>v7.x
Trevor Norris
9 years ago
committed by
Bartosz Sosnowski
2 changed files with 85 additions and 0 deletions
@ -0,0 +1,46 @@ |
|||||
|
'use strict'; |
||||
|
|
||||
|
const common = require('../common'); |
||||
|
const fs = require('fs'); |
||||
|
const path = require('path'); |
||||
|
const resolved_path = path.resolve(__dirname, '../../lib/'); |
||||
|
const relative_path = path.relative(__dirname, '../../lib/'); |
||||
|
|
||||
|
const bench = common.createBenchmark(main, { |
||||
|
n: [1e4], |
||||
|
type: ['relative', 'resolved'], |
||||
|
}); |
||||
|
|
||||
|
|
||||
|
function main(conf) { |
||||
|
const n = conf.n >>> 0; |
||||
|
const type = conf.type; |
||||
|
|
||||
|
bench.start(); |
||||
|
if (type === 'relative') |
||||
|
relativePath(n); |
||||
|
else if (type === 'resolved') |
||||
|
resolvedPath(n); |
||||
|
else |
||||
|
throw new Error('unknown "type": ' + type); |
||||
|
} |
||||
|
|
||||
|
function relativePath(n) { |
||||
|
(function r(cntr) { |
||||
|
if (--cntr <= 0) |
||||
|
return bench.end(n); |
||||
|
fs.realpath(relative_path, function() { |
||||
|
r(cntr); |
||||
|
}); |
||||
|
}(n)); |
||||
|
} |
||||
|
|
||||
|
function resolvedPath(n) { |
||||
|
(function r(cntr) { |
||||
|
if (--cntr <= 0) |
||||
|
return bench.end(n); |
||||
|
fs.realpath(resolved_path, function() { |
||||
|
r(cntr); |
||||
|
}); |
||||
|
}(n)); |
||||
|
} |
@ -0,0 +1,39 @@ |
|||||
|
'use strict'; |
||||
|
|
||||
|
const common = require('../common'); |
||||
|
const fs = require('fs'); |
||||
|
const path = require('path'); |
||||
|
const resolved_path = path.resolve(__dirname, '../../lib/'); |
||||
|
const relative_path = path.relative(__dirname, '../../lib/'); |
||||
|
|
||||
|
const bench = common.createBenchmark(main, { |
||||
|
n: [1e4], |
||||
|
type: ['relative', 'resolved'], |
||||
|
}); |
||||
|
|
||||
|
|
||||
|
function main(conf) { |
||||
|
const n = conf.n >>> 0; |
||||
|
const type = conf.type; |
||||
|
|
||||
|
bench.start(); |
||||
|
if (type === 'relative') |
||||
|
relativePath(n); |
||||
|
else if (type === 'resolved') |
||||
|
resolvedPath(n); |
||||
|
else |
||||
|
throw new Error('unknown "type": ' + type); |
||||
|
bench.end(n); |
||||
|
} |
||||
|
|
||||
|
function relativePath(n) { |
||||
|
for (var i = 0; i < n; i++) { |
||||
|
fs.realpathSync(relative_path); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
function resolvedPath(n) { |
||||
|
for (var i = 0; i < n; i++) { |
||||
|
fs.realpathSync(resolved_path); |
||||
|
} |
||||
|
} |
Loading…
Reference in new issue