summaryrefslogtreecommitdiff
path: root/cli/tests/workers/bench_startup.ts
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2021-02-15 14:48:47 +0100
committerGitHub <noreply@github.com>2021-02-15 14:48:47 +0100
commit8c6d147e6ae40a1f92aba1aedc0d95ef437dd4ba (patch)
treefbb59c9a6b294fd242854480067ae50cfb61fba7 /cli/tests/workers/bench_startup.ts
parent1afe6b48e0bfee44f37206eb0fc03ea6ae37ad4d (diff)
chore: Reorganise workers tests (#9493)
Diffstat (limited to 'cli/tests/workers/bench_startup.ts')
-rw-r--r--cli/tests/workers/bench_startup.ts33
1 files changed, 33 insertions, 0 deletions
diff --git a/cli/tests/workers/bench_startup.ts b/cli/tests/workers/bench_startup.ts
new file mode 100644
index 000000000..5fbf23b45
--- /dev/null
+++ b/cli/tests/workers/bench_startup.ts
@@ -0,0 +1,33 @@
+// 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 (let i = 1; i <= workerCount; ++i) {
+ const worker = new Worker(
+ new URL("bench_worker.ts", import.meta.url).href,
+ { type: "module" },
+ );
+ const promise = new Promise<void>((resolve): void => {
+ worker.onmessage = (e): void => {
+ 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) {
+ const promise = new Promise<void>((resolve): void => {
+ worker.onmessage = (e): void => {
+ if (e.data.cmdId === 3) resolve();
+ };
+ });
+ worker.postMessage({ action: 3 });
+ await promise;
+ }
+ console.log("Finished!");
+}
+
+bench();