Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nodejs/node.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRich Trott <rtrott@gmail.com>2017-01-15 06:43:08 +0300
committerItalo A. Casas <me@italoacasas.com>2017-01-27 16:12:05 +0300
commit47c0953b1281c88d6a0703febeced4468371f0af (patch)
treeb0d4a014429d41ecee51df7dcaa0caab4de8a008 /benchmark
parent9d91bf9788a41290b9c2582a482ca3c444ffe096 (diff)
benchmark: add benchmark for vm.runIn*()
Introduce benchmarks for vm.runInContext() and vm.runInThisContext(). PR-URL: https://github.com/nodejs/node/pull/10816 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Brian White <mscdex@mscdex.net>
Diffstat (limited to 'benchmark')
-rw-r--r--benchmark/vm/run-in-context.js32
-rw-r--r--benchmark/vm/run-in-this-context.js29
2 files changed, 61 insertions, 0 deletions
diff --git a/benchmark/vm/run-in-context.js b/benchmark/vm/run-in-context.js
new file mode 100644
index 00000000000..62ebe29146e
--- /dev/null
+++ b/benchmark/vm/run-in-context.js
@@ -0,0 +1,32 @@
+'use strict';
+
+const common = require('../common.js');
+
+const bench = common.createBenchmark(main, {
+ n: [1],
+ breakOnSigint: [0, 1],
+ withSigintListener: [0, 1]
+});
+
+const vm = require('vm');
+
+function main(conf) {
+ const n = +conf.n;
+ const options = conf.breakOnSigint ? {breakOnSigint: true} : {};
+ const withSigintListener = !!conf.withSigintListener;
+
+ process.removeAllListeners('SIGINT');
+ if (withSigintListener)
+ process.on('SIGINT', () => {});
+
+ var i = 0;
+
+ const contextifiedSandbox = vm.createContext();
+
+ common.v8ForceOptimization(vm.runInContext,
+ '0', contextifiedSandbox, options);
+ bench.start();
+ for (; i < n; i++)
+ vm.runInContext('0', contextifiedSandbox, options);
+ bench.end(n);
+}
diff --git a/benchmark/vm/run-in-this-context.js b/benchmark/vm/run-in-this-context.js
new file mode 100644
index 00000000000..f66fd31a1a9
--- /dev/null
+++ b/benchmark/vm/run-in-this-context.js
@@ -0,0 +1,29 @@
+'use strict';
+
+const common = require('../common.js');
+
+const bench = common.createBenchmark(main, {
+ n: [1],
+ breakOnSigint: [0, 1],
+ withSigintListener: [0, 1]
+});
+
+const vm = require('vm');
+
+function main(conf) {
+ const n = +conf.n;
+ const options = conf.breakOnSigint ? {breakOnSigint: true} : {};
+ const withSigintListener = !!conf.withSigintListener;
+
+ process.removeAllListeners('SIGINT');
+ if (withSigintListener)
+ process.on('SIGINT', () => {});
+
+ var i = 0;
+
+ common.v8ForceOptimization(vm.runInThisContext, '0', options);
+ bench.start();
+ for (; i < n; i++)
+ vm.runInThisContext('0', options);
+ bench.end(n);
+}