-
-
Notifications
You must be signed in to change notification settings - Fork 33.5k
Closed
Labels
docIssues and PRs related to the documentations.Issues and PRs related to the documentations.performanceIssues and PRs related to the performance of Node.js.Issues and PRs related to the performance of Node.js.questionIssues that look for answers.Issues that look for answers.vmIssues and PRs related to the vm subsystem.Issues and PRs related to the vm subsystem.
Description
- Version:
Node.js v6.7.0 / Node.js 4.4.2 - Platform:
Ubuntu 14.04 LTS x64 (v6.7.0) / macOS Sierra (v4.4.2) - Subsystem:
VM
I just found there's unexpected behavior on timeout
option of vm.runInContext
.
When timeout
option was specified, Script execution on VM is much slower then timeout
options wasn't specified.
This is two of example snippets to reproduce that problem:
vm-normal.js
'use strict';
const
vm = require('vm'),
sandbox = {
current: -1
};
console.time('vm-normal');
vm.createContext(sandbox);
for (let i = 0 ; i < 100000 ; i++) {
vm.runInContext(`current = ${i};`, sandbox, {
displayErrors: false
});
}
console.timeEnd('vm-normal');
vm-with-timeout.js
'use strict';
const
vm = require('vm'),
sandbox = {
current: -1
};
console.time('vm-with-timeout');
vm.createContext(sandbox);
for (let i = 0 ; i < 100000 ; i++) {
vm.runInContext(`current = ${i};`, sandbox, {
displayErrors: false,
timeout: 1000
});
}
console.timeEnd('vm-with-timeout');
I think maybe that's not a bug (timer for timeout is expansive?), but that's unexpected behavior. It would be nice if that limitation should be documented on VM API documentation.
Metadata
Metadata
Assignees
Labels
docIssues and PRs related to the documentations.Issues and PRs related to the documentations.performanceIssues and PRs related to the performance of Node.js.Issues and PRs related to the performance of Node.js.questionIssues that look for answers.Issues that look for answers.vmIssues and PRs related to the vm subsystem.Issues and PRs related to the vm subsystem.