summaryrefslogtreecommitdiff
path: root/tests/workers_startup_bench.ts
diff options
context:
space:
mode:
Diffstat (limited to 'tests/workers_startup_bench.ts')
-rw-r--r--tests/workers_startup_bench.ts25
1 files changed, 25 insertions, 0 deletions
diff --git a/tests/workers_startup_bench.ts b/tests/workers_startup_bench.ts
new file mode 100644
index 000000000..46b2b2801
--- /dev/null
+++ b/tests/workers_startup_bench.ts
@@ -0,0 +1,25 @@
+// Benchmark measures time it takes to start and stop a number of workers.
+const workerCount = 50;
+
+async function bench(): Promise<void> {
+ const workers: Worker[] = [];
+ for (var i = 1; i <= workerCount; ++i) {
+ const worker = new Worker("tests/subdir/bench_worker.ts");
+ const promise = new Promise(resolve => {
+ worker.onmessage = e => {
+ if (e.data.cmdId === 0) resolve();
+ };
+ });
+ worker.postMessage({ cmdId: 0, action: 2 });
+ await promise;
+ workers.push(worker);
+ }
+ console.log("Done creating workers closing workers!");
+ for (const worker of workers) {
+ worker.postMessage({ action: 3 });
+ await worker.closed; // Required to avoid a cmdId not in table error.
+ }
+ console.log("Finished!");
+}
+
+bench();