From 0320ab48604d3725e673943027ebcf7500bad3d7 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=B4me=20Benoit?= Date: Fri, 22 Sep 2023 17:05:39 +0200 Subject: [PATCH] perf: use hyperfine-action for benchmark vs. external pools MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Jérôme Benoit --- .github/workflows/external-benchmark.yml | 48 +++++++++++-------- .../versus-external-pools/.hyperfine.json | 21 ++++++++ 2 files changed, 50 insertions(+), 19 deletions(-) create mode 100644 benchmarks/versus-external-pools/.hyperfine.json diff --git a/.github/workflows/external-benchmark.yml b/.github/workflows/external-benchmark.yml index 191be327..bc64f897 100644 --- a/.github/workflows/external-benchmark.yml +++ b/.github/workflows/external-benchmark.yml @@ -27,23 +27,33 @@ jobs: - name: Install dependencies run: pnpm install --ignore-scripts - name: Run benchmark - if: github.ref == 'refs/heads/${{ github.event.repository.default_branch }}' - run: ./bench.sh - - name: Commit files - if: github.ref == 'refs/heads/${{ github.event.repository.default_branch }}' - env: - COMMIT_MESSAGE: 'docs: update benchmark versus external pools results' - COMMIT_AUTHOR: Benchmark Bot - COMMIT_EMAIL: benchmark-bot@users.noreply.github.com - run: | - git config --local user.name "${{ env.COMMIT_AUTHOR }}" - git config --local user.email "${{ env.COMMIT_EMAIL }}" - git pull - git add ./BENCH-100000.md ./BENCH-100000.json - git commit -a -m "${{ env.COMMIT_MESSAGE }}" - - name: Push changes - if: github.ref == 'refs/heads/${{ github.event.repository.default_branch }}' - uses: CasperWA/push-protected@v2 + uses: blacha/hyperfine-action@v1 with: - token: ${{ secrets.GH_TOKEN_PROTECTED }} - branch: ${{ github.event.repository.default_branch }} + benchmark-config: '.hyperfine.json' + count: 500 + benchmark-branch: 'gh-pages' + benchmark-output: './benchmarks.json' + benchmark-html: './benchmarks.html' + master-branch: 'master' + github-token: ${{ secrets.GITHUB_TOKEN }} + # - name: Run benchmark + # if: github.ref == 'refs/heads/${{ github.event.repository.default_branch }}' + # run: ./bench.sh + # - name: Commit files + # if: github.ref == 'refs/heads/${{ github.event.repository.default_branch }}' + # env: + # COMMIT_MESSAGE: 'docs: update benchmark versus external pools results' + # COMMIT_AUTHOR: Benchmark Bot + # COMMIT_EMAIL: benchmark-bot@users.noreply.github.com + # run: | + # git config --local user.name "${{ env.COMMIT_AUTHOR }}" + # git config --local user.email "${{ env.COMMIT_EMAIL }}" + # git pull + # git add ./BENCH-100000.md ./BENCH-100000.json + # git commit -a -m "${{ env.COMMIT_MESSAGE }}" + # - name: Push changes + # if: github.ref == 'refs/heads/${{ github.event.repository.default_branch }}' + # uses: CasperWA/push-protected@v2 + # with: + # token: ${{ secrets.GH_TOKEN_PROTECTED }} + # branch: ${{ github.event.repository.default_branch }} diff --git a/benchmarks/versus-external-pools/.hyperfine.json b/benchmarks/versus-external-pools/.hyperfine.json new file mode 100644 index 00000000..4a4453ee --- /dev/null +++ b/benchmarks/versus-external-pools/.hyperfine.json @@ -0,0 +1,21 @@ +[ + { "name": "Poolifier dynamic", "command": "node dynamic-poolifier.mjs" }, + { "name": "Poolifier fixed", "command": "node fixed-poolifier.mjs" }, + { "name": "Piscina dynamic", "command": "node dynamic-piscina.mjs" }, + { "name": "Piscina fixed", "command": "node fixed-piscina.mjs" }, + { "name": "Tinypool dynamic", "command": "node dynamic-tinypool.mjs" }, + { "name": "Tinypool fixed", "command": "node fixed-tinypool.mjs" }, + { "name": "Workerpool dynamic", "command": "node dynamic-workerpool.mjs" }, + { "name": "Workerpool fixed", "command": "node fixed-workerpool.mjs" }, + { "name": "Worker nodes dynamic", "command": "node dynamic-worker-nodes.js" }, + { "name": "Worker nodes fixed", "command": "node fixed-worker-nodes.js" }, + { + "name": "Node worker threads pool dynamic", + "command": "node dynamic-node-worker-threads-pool.mjs" + }, + { + "name": "Node worker threads pool static", + "command": "node static-node-worker-threads-pool.mjs" + }, + { "name": "Nanothreads fixed", "command": "node fixed-nanothreads.mjs" } +] -- 2.34.1