mirror of
https://github.com/nodejs/node.git
synced 2025-08-15 13:48:44 +02:00
os: cache homedir, remove getCheckedFunction
PR-URL: https://github.com/nodejs/node/pull/50037 Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
This commit is contained in:
parent
aad8002b88
commit
0f0dd1a493
4 changed files with 95 additions and 2 deletions
31
benchmark/os/homedir.js
Normal file
31
benchmark/os/homedir.js
Normal file
|
@ -0,0 +1,31 @@
|
|||
'use strict';
|
||||
|
||||
const common = require('../common.js');
|
||||
const homedir = require('os').homedir;
|
||||
const assert = require('assert');
|
||||
|
||||
const bench = common.createBenchmark(main, {
|
||||
n: [1e6],
|
||||
});
|
||||
|
||||
function main({ n }) {
|
||||
// Warm up.
|
||||
const length = 1024;
|
||||
const array = [];
|
||||
for (let i = 0; i < length; ++i) {
|
||||
array.push(homedir());
|
||||
}
|
||||
|
||||
bench.start();
|
||||
for (let i = 0; i < n; ++i) {
|
||||
const index = i % length;
|
||||
array[index] = homedir();
|
||||
}
|
||||
bench.end(n);
|
||||
|
||||
// Verify the entries to prevent dead code elimination from making
|
||||
// the benchmark invalid.
|
||||
for (let i = 0; i < length; ++i) {
|
||||
assert.strictEqual(typeof array[i], 'string');
|
||||
}
|
||||
}
|
31
benchmark/os/hostname.js
Normal file
31
benchmark/os/hostname.js
Normal file
|
@ -0,0 +1,31 @@
|
|||
'use strict';
|
||||
|
||||
const common = require('../common.js');
|
||||
const hostname = require('os').hostname;
|
||||
const assert = require('assert');
|
||||
|
||||
const bench = common.createBenchmark(main, {
|
||||
n: [1e6],
|
||||
});
|
||||
|
||||
function main({ n }) {
|
||||
// Warm up.
|
||||
const length = 1024;
|
||||
const array = [];
|
||||
for (let i = 0; i < length; ++i) {
|
||||
array.push(hostname());
|
||||
}
|
||||
|
||||
bench.start();
|
||||
for (let i = 0; i < n; ++i) {
|
||||
const index = i % length;
|
||||
array[index] = hostname();
|
||||
}
|
||||
bench.end(n);
|
||||
|
||||
// Verify the entries to prevent dead code elimination from making
|
||||
// the benchmark invalid.
|
||||
for (let i = 0; i < length; ++i) {
|
||||
assert.strictEqual(typeof array[i], 'string');
|
||||
}
|
||||
}
|
31
benchmark/os/uptime.js
Normal file
31
benchmark/os/uptime.js
Normal file
|
@ -0,0 +1,31 @@
|
|||
'use strict';
|
||||
|
||||
const common = require('../common.js');
|
||||
const uptime = require('os').uptime;
|
||||
const assert = require('assert');
|
||||
|
||||
const bench = common.createBenchmark(main, {
|
||||
n: [1e5],
|
||||
});
|
||||
|
||||
function main({ n }) {
|
||||
// Warm up.
|
||||
const length = 1024;
|
||||
const array = [];
|
||||
for (let i = 0; i < length; ++i) {
|
||||
array.push(uptime());
|
||||
}
|
||||
|
||||
bench.start();
|
||||
for (let i = 0; i < n; ++i) {
|
||||
const index = i % length;
|
||||
array[index] = uptime();
|
||||
}
|
||||
bench.end(n);
|
||||
|
||||
// Verify the entries to prevent dead code elimination from making
|
||||
// the benchmark invalid.
|
||||
for (let i = 0; i < length; ++i) {
|
||||
assert.strictEqual(typeof array[i], 'number');
|
||||
}
|
||||
}
|
|
@ -61,9 +61,9 @@ const {
|
|||
} = internalBinding('os');
|
||||
|
||||
function getCheckedFunction(fn) {
|
||||
return hideStackFrames(function checkError(...args) {
|
||||
return hideStackFrames(function checkError() {
|
||||
const ctx = {};
|
||||
const ret = fn(...args, ctx);
|
||||
const ret = fn(ctx);
|
||||
if (ret === undefined) {
|
||||
throw new ERR_SYSTEM_ERROR(ctx);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue