Commit | Line | Data |
---|---|---|
57df5469 | 1 | const Benchmark = require('benchmark') |
ff5e76e1 JB |
2 | const { |
3 | dynamicClusterTest, | |
23ff945a | 4 | dynamicClusterTestFairShare, |
ff5e76e1 JB |
5 | dynamicClusterTestLessRecentlyUsed |
6 | } = require('./cluster/dynamic') | |
292ad316 JB |
7 | const { |
8 | fixedClusterTest, | |
23ff945a | 9 | fixedClusterTestFairShare, |
292ad316 JB |
10 | fixedClusterTestLessRecentlyUsed |
11 | } = require('./cluster/fixed') | |
ff5e76e1 JB |
12 | const { |
13 | dynamicThreadTest, | |
23ff945a | 14 | dynamicThreadTestFairShare, |
ff5e76e1 JB |
15 | dynamicThreadTestLessRecentlyUsed |
16 | } = require('./thread/dynamic') | |
292ad316 JB |
17 | const { |
18 | fixedThreadTest, | |
23ff945a | 19 | fixedThreadTestFairShare, |
292ad316 JB |
20 | fixedThreadTestLessRecentlyUsed |
21 | } = require('./thread/fixed') | |
22 | const { LIST_FORMATTER } = require('./benchmark-utils') | |
325f50bc | 23 | |
ff5e76e1 | 24 | const suite = new Benchmark.Suite('poolifier') |
57df5469 | 25 | |
85a3f8a7 | 26 | // Wait some seconds before start, pools need to load threads !!! |
57df5469 | 27 | setTimeout(async () => { |
28 | test() | |
29 | }, 3000) | |
30 | ||
106744f7 | 31 | async function test () { |
85a3f8a7 | 32 | // Add tests |
cf9aa6c3 | 33 | suite |
292ad316 | 34 | .add('Poolifier:Fixed:ThreadPool', async function () { |
325f50bc S |
35 | await fixedThreadTest() |
36 | }) | |
292ad316 JB |
37 | .add('Poolifier:Fixed:ThreadPool:LessRecentlyUsed', async function () { |
38 | await fixedThreadTestLessRecentlyUsed() | |
39 | }) | |
23ff945a JB |
40 | .add('Poolifier:Fixed:ThreadPool:FairShare', async function () { |
41 | await fixedThreadTestFairShare() | |
42 | }) | |
ff5e76e1 | 43 | .add('Poolifier:Dynamic:ThreadPool', async function () { |
325f50bc S |
44 | await dynamicThreadTest() |
45 | }) | |
ff5e76e1 JB |
46 | .add('Poolifier:Dynamic:ThreadPool:LessRecentlyUsed', async function () { |
47 | await dynamicThreadTestLessRecentlyUsed() | |
48 | }) | |
23ff945a JB |
49 | .add('Poolifier:Dynamic:ThreadPool:FairShare', async function () { |
50 | await dynamicThreadTestFairShare() | |
51 | }) | |
292ad316 | 52 | .add('Poolifier:Fixed:ClusterPool', async function () { |
325f50bc | 53 | await fixedClusterTest() |
cf9aa6c3 | 54 | }) |
292ad316 JB |
55 | .add('Poolifier:Fixed:ClusterPool:LessRecentlyUsed', async function () { |
56 | await fixedClusterTestLessRecentlyUsed() | |
57 | }) | |
23ff945a JB |
58 | .add('Poolifier:Fixed:ClusterPool:FairShare', async function () { |
59 | await fixedClusterTestFairShare() | |
60 | }) | |
ff5e76e1 | 61 | .add('Poolifier:Dynamic:ClusterPool', async function () { |
325f50bc | 62 | await dynamicClusterTest() |
106744f7 | 63 | }) |
ff5e76e1 JB |
64 | .add('Poolifier:Dynamic:ClusterPool:LessRecentlyUsed', async function () { |
65 | await dynamicClusterTestLessRecentlyUsed() | |
66 | }) | |
23ff945a JB |
67 | .add('Poolifier:Dynamic:ClusterPool:FairShare', async function () { |
68 | await dynamicClusterTestFairShare() | |
69 | }) | |
85a3f8a7 | 70 | // Add listeners |
57df5469 | 71 | .on('cycle', function (event) { |
583a27ce | 72 | console.log(event.target.toString()) |
57df5469 | 73 | }) |
74 | .on('complete', function () { | |
583a27ce JB |
75 | console.log( |
76 | 'Fastest is ' + | |
77 | LIST_FORMATTER.format(this.filter('fastest').map('name')) | |
78 | ) | |
79 | // eslint-disable-next-line no-process-exit | |
80 | process.exit() | |
57df5469 | 81 | }) |
292ad316 | 82 | .run({ async: true }) |
57df5469 | 83 | } |