From e0495b55247d1bb4cf009749b800ccb5761f8336 Mon Sep 17 00:00:00 2001 From: Oliver Medhurst Date: Wed, 15 Jul 2026 21:54:28 +0100 Subject: [PATCH] add porffor to benchmarking --- .github/workflows/benchmark.yml | 11 +++++++++++ bench/gather_results.mjs | 4 +++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index 25ecdd9f..a8ca7971 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -99,6 +99,17 @@ jobs: chmod +x ./bin/kiesel ./bin/kiesel data/bench/bench-v8/combined.js > data/bench/kiesel_results.txt + - name: Benchmarking Porffor + continue-on-error: true + run: | + trap 'echo "::warning::Porffor benchmark failed to install or run"' ERR + mkdir -p ./bin + version=$(curl -fsSL https://api.github.com/repos/CanadaHonk/porffor/releases/latest | jq -r .tag_name) + echo "Latest Porffor: $version" + wget -qO /tmp/porffor.tar.gz "https://github.com/CanadaHonk/porffor/releases/download/$version/porffor-linux-x64.tar.gz" + tar -xzf /tmp/porffor.tar.gz -C ./bin + ./bin/porf data/bench/bench-v8/combined.js > data/bench/porffor_results.txt + # - name: Benchmarking LibJS # run: | # esvu install libjs diff --git a/bench/gather_results.mjs b/bench/gather_results.mjs index 6f9f3b81..5db0a974 100644 --- a/bench/gather_results.mjs +++ b/bench/gather_results.mjs @@ -6,6 +6,7 @@ engines.set("boa", {}); engines.set("v8-jitless", {}); engines.set("sm-jitless", {}); engines.set("kiesel", {}); +engines.set("porffor", {}); engines.set("libjs", {}); engines.set("duktape", {}); engines.set("quickjs", {}); @@ -62,7 +63,8 @@ benchmarks.forEach((benchmark) => { const benchmarkNormalized = benchmark.charAt(0).toLowerCase() + benchmark.slice(1); postData.results[benchmarkNormalized] = {}; engines.forEach((val, engine) => { - data["results"][engine].push(val[benchmark]); + const history = data["results"][engine] ??= Array(data["labels"].length).fill(null); + history.push(val[benchmark]); postData.results[benchmarkNormalized][engine] = val[benchmark]; }); data["labels"].push(time);