MCPcopy
hub / github.com/jestjs/jest / testWorkerFarm

Function testWorkerFarm

packages/jest-worker/__benchmarks__/test.js:32–81  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

30const iterations = 10;
31
32function testWorkerFarm() {
33 return new Promise(async resolve => {
34 const startTime = performance.now();
35 let count = 0;
36
37 async function countToFinish() {
38 if (++count === calls) {
39 workerFarm.end(api);
40 const endTime = performance.now();
41
42 // Let all workers go down.
43 await sleep(2000);
44
45 resolve({
46 globalTime: endTime - startTime - 2000,
47 processingTime: endTime - startProcess,
48 });
49 }
50 }
51
52 const api = workerFarm(
53 {
54 autoStart: true,
55 maxConcurrentCallsPerWorker: 1,
56 maxConcurrentWorkers: threads,
57 },
58 require.resolve('./workers/worker_farm'),
59 [method],
60 );
61
62 // Let all workers come up.
63 await sleep(2000);
64
65 const startProcess = performance.now();
66
67 for (let i = 0; i < calls; i++) {
68 const promisified = new Promise((resolve, reject) => {
69 api[method]((err, result) => {
70 if (err) {
71 reject(err);
72 } else {
73 resolve(result);
74 }
75 });
76 });
77
78 promisified.then(countToFinish);
79 }
80 });
81}
82
83function testJestWorker() {
84 return new Promise(async resolve => {

Callers 1

mainFunction · 0.85

Calls 5

thenMethod · 0.80
sleepFunction · 0.70
nowMethod · 0.65
resolveFunction · 0.50
resolveMethod · 0.45

Tested by

no test coverage detected