Commit graph

67 commits

Author SHA1 Message Date
Camillo Bruni
e71ad6a0b4 Update main-custom to latest upstream version
Change-Id: Ibca337dd7a7f37ee4857c85fccd917b47aa3c9d5
Reviewed-on: https://chromium-review.googlesource.com/c/external/github.com/WebKit/JetStream/+/7232297
Reviewed-by: Marja Hölttä <marja@chromium.org>
2025-12-08 06:40:49 -08:00
Camillo Bruni
2ca0706159 Update custom-main to latest main
6215add877

Change-Id: I2fe6e6a634a406f4c0e5c491b4ff6286ae888175
Reviewed-on: https://chromium-review.googlesource.com/c/external/github.com/WebKit/JetStream/+/7124399
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
2025-11-05 04:22:38 -08:00
Camillo Bruni
0368cebd22 Reset main-custom branch to upstream/main
All important runner changes have landed upstream.

Bug: 358290763
Change-Id: Ib47f6838618e9c0081f60f3b60d52b1ce149b2af
Reviewed-on: https://chromium-review.googlesource.com/c/external/github.com/WebKit/JetStream/+/7094856
Reviewed-by: Marja Hölttä <marja@chromium.org>
2025-10-29 02:20:40 -07:00
Camillo Bruni
12a84634a9 Remove startup animation
Change-Id: I27288a0ace83d844269e82fdad1b544bd146cf11
Reviewed-on: https://chromium-review.googlesource.com/c/external/github.com/WebKit/JetStream/+/7037418
Reviewed-by: Marja Hölttä <marja@chromium.org>
2025-10-14 06:45:29 -07:00
Camillo Bruni
4e60856fb1 prism js: fix file name typo
Change-Id: I5e4cdbc8babb18d5e0cfde37675a9b30093fffa1
Reviewed-on: https://chromium-review.googlesource.com/c/external/github.com/WebKit/JetStream/+/7036461
Reviewed-by: Marja Hölttä <marja@chromium.org>
2025-10-14 00:30:23 -07:00
Camillo Bruni
43fec888d2 Merge latest upstream main changes
Summary:
- Better CLI arguments parsing
- Builtin compression support for large source files

Change-Id: Ia0bf37ae5405adb218a2da2c072a1f9cf0ee9f95
Reviewed-on: https://chromium-review.googlesource.com/c/external/github.com/WebKit/JetStream/+/7021129
Reviewed-by: Marja Hölttä <marja@chromium.org>
2025-10-13 04:18:39 -07:00
Camillo Bruni
254b4522a9 Merge latest main-branch changes
Change-Id: Ie6e7295fc5ace81c08ebd4eb052a31a8b3b24ec8
Reviewed-on: https://chromium-review.googlesource.com/c/external/github.com/WebKit/JetStream/+/7006093
Reviewed-by: Olivier Flückiger <olivf@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
2025-10-08 04:06:38 -07:00
Camillo Bruni
515acee6e1 Merge upstream PR #167: Conditionally show more metric details
See https://github.com/WebKit/JetStream/pull/167

- Collect and report subTimes like subScores
- Only show times if the global .details CSS class is set (the default view is unaffected)
- Also use .details for displaying displayCategoryScores
- Change uiFriendlyDuration to only report 2 significant digits
- Add Benchmark.prototype.wallTime accessor and report that as well
-  Use # as unit symbol for console printing

Change-Id: Ibc603b29c516060823c39c738069466cff57170a
Reviewed-on: https://chromium-review.googlesource.com/c/external/github.com/WebKit/JetStream/+/6976231
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
2025-09-24 01:18:07 -07:00
Camillo Bruni
8270d839bf Reset main-custom to latest main version
Following a different approach to better keep main-custom up to date
with main by resetting and merging pending upstream PRs on top.

Change-Id: I26c7a2c63b166715d01b50da0bd47aaf99aa3c1a
Reviewed-on: https://chromium-review.googlesource.com/c/external/github.com/WebKit/JetStream/+/6976606
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
2025-09-24 01:18:07 -07:00
Camillo Bruni
97f348ec9d Merge main
- Merge upstream main branch
- Partially merge https://github.com/WebKit/JetStream/pull/167/ to
  display sub-times

Change-Id: I9f30772ff2d6d068b09e43df3cb57da35b231ca2
Reviewed-on: https://chromium-review.googlesource.com/c/external/github.com/WebKit/JetStream/+/6911418
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
2025-09-03 04:51:51 -07:00
Camillo Bruni
11ac3bea19 Revert "Reset main-custom to the latest main code"
This reverts commit b0e703ec66.

Reason for revert: breaks v8-perf result parsing

Original change's description:
> Reset main-custom to the latest main code
>
> Change-Id: Ic89816520b7929e50c673b60a39a44c35fe85996
> Reviewed-on: https://chromium-review.googlesource.com/c/external/github.com/WebKit/JetStream/+/6905285
> Reviewed-by: Leszek Swirski <leszeks@chromium.org>

No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Change-Id: I101c80628156fb9635a19e95159a62435ff35926
Reviewed-on: https://chromium-review.googlesource.com/c/external/github.com/WebKit/JetStream/+/6906865
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
2025-09-02 08:31:32 -07:00
Camillo Bruni
b0e703ec66 Reset main-custom to the latest main code
Change-Id: Ic89816520b7929e50c673b60a39a44c35fe85996
Reviewed-on: https://chromium-review.googlesource.com/c/external/github.com/WebKit/JetStream/+/6905285
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
2025-09-02 02:31:47 -07:00
Camillo Bruni
5d1737b1b1 Merge latest upstream changes to main-custom
3c31693 Simplify formatting (#79)
0633ab2 Merge pull request #90 from kmiller68/fix-prepareForNextIteration-async-benchmark
5d0005e Move prepareForNextIteration call from Benchmark's runnerCode to preIterationCode
df99e62 Merge pull request #74 from kmiller68/preload-blobs-wasm
510e017 Move the loading code to shared prerunCode helpers
bcfccc3 Fix between benchmark network requests for Dart-flute's JS Module. In that process I also had to change how 8bitbench loads the rom it's going to use.
8869c79 Move blob fetching to runnerCode since it needs to do an async operation to get the blob as an array buffer in modern browsers.
a6bd526 Pass the blob URL for preloads in WasmEMCCBenchmark.
9163dcb Merge pull request #76 from kmiller68/zlib-check-_compressFile-to-setupModule
c3773cd Revert #78 as it broke JetStream3 on web page
8204b57 Remove custom run methods #78


Change-Id: I27a5856ea23e52fa298c2751d2e110460f90e73a
Reviewed-on: https://chromium-review.googlesource.com/c/external/github.com/WebKit/JetStream/+/6737289
Reviewed-by: Daniel Lehmann <dlehmann@chromium.org>
2025-07-15 06:35:46 -07:00
Camillo Bruni
3b6ac3b95f main-custom: Fix default benchmark subTimes
A typo caused undefined values to leak into the geomean and break
the output parsing.

Bug: 358290763
Change-Id: I09ec15e094bdcb6981ca8659c24c9887bbf94491
Reviewed-on: https://chromium-review.googlesource.com/c/external/github.com/WebKit/JetStream/+/6663060
Reviewed-by: Daniel Lehmann <dlehmann@chromium.org>
2025-06-24 04:18:23 -07:00
Camillo Bruni
7fa3ebdb08 Patch main runner to print v8-perf compatible output
- Print all scores
- Print all times
- Include line item name on ever metric output

Sources:
- https://chrome-internal-review.googlesource.com/c/v8/v8-perf/+/7397479

Bug: 358290763
Change-Id: I6dd1fcd2537996568b6a579eceff9d02af8bc44d
Reviewed-on: https://chromium-review.googlesource.com/c/external/github.com/WebKit/JetStream/+/6662678
Reviewed-by: Daniel Lehmann <dlehmann@chromium.org>
2025-06-23 09:56:01 -07:00
Camillo Bruni
58bea2e327 [main-custom] Support D8 bomb-workers
Merge over our internal changes to the main-custom branch.

Sources:
- https://crrev.com/i/7397481
- https://crrev.com/i/7431936
- https://crrev.com/i/7448617

Change-Id: I4dcb2042afecd3f84aed717f70356bb24a692ef5
Reviewed-on: https://chromium-review.googlesource.com/c/external/github.com/WebKit/JetStream/+/6651528
Reviewed-by: Daniel Lehmann <dlehmann@chromium.org>
2025-06-18 09:23:35 -07:00
Camillo Bruni
de8d4c1101 Merge upstream main into main-custom
Change-Id: Ic7f3a36cdb40cddf04ed7d89c41c2719737cc834
Reviewed-on: https://chromium-review.googlesource.com/c/external/github.com/WebKit/JetStream/+/6651527
Reviewed-by: Daniel Lehmann <dlehmann@chromium.org>
2025-06-17 06:30:36 -07:00
Keith Miller
4f874f4bfe
Merge pull request #35 from danleh/hashset-wasm-scoring
Move HashSet-wasm to first, worst, average scoring
2025-01-27 14:25:15 -05:00
Keith Miller
78db0506da
Merge pull request #30 from danleh/sqlite-scoring
Move sqlite Wasm benchmark to first, worst, average scoring
2025-01-27 14:17:14 -05:00
Keith Miller
fa77231184
Merge pull request #28 from danleh/quicksort-wasm-scoring
Move quicksort-wasm to JS-style scoring
2025-01-27 14:14:11 -05:00
Daniel Lehmann
ebddd39744 cleanup: merge polyfills and benchmark.js into single file 2025-01-27 16:04:22 +01:00
Daniel Lehmann
cbce1b8672 Move sqlite Wasm benchmark to first, worst, average scoring
Drive-by: remove unused polyfills, update sqlite source distribution, rebuild
2025-01-27 15:46:37 +01:00
Daniel Lehmann
9cf293fc92 Move quicksort-wasm to JS-style scoring
The usual changes: use `WasmEMCCBenchmark` class for running, rebuild and add build script, use iteration count that makes the Wall time not too high (<2s)

In this case, we spend a bit more time in the top-tier than before. However, that line item earlier ran a single <50ms iteration, and compiled for ~2ms, so I would argue it was very prone to noise, and it's good that we run it for longer.
2025-01-27 14:54:11 +01:00
Daniel Lehmann
daf59cd3b4 Move HashSet-wasm to first, worst, average scoring
Same steps as for the other Wasm line items:
- Move files to subdirectory.
- Rebuild with up-to-date Emscripten.
- Reduce single iteration time, so that we can run multiple iterations (a single iteration before took ~300ms, now ~30ms).
- Checked that we spend roughly the same amount of CPU samples in the top-tier and that overall profiles look similar.
2025-01-27 14:44:43 +01:00
Keith Miller
6e8be4de38
Remove Octane-zlib.
This is another asm.js benchmark that we missed from before. Like float-mm.c, we don't
think asm.js has enough in the wild usage to justify benchmarking.
2025-01-24 12:10:34 -05:00
Keith Miller
21b9a95df3
Revert "Remove Octane-zlib."
This reverts commit 92525fb49e.
2025-01-24 12:04:57 -05:00
Keith Miller
92525fb49e
Remove Octane-zlib.
This is another asm.js benchmark that we missed from before. Like float-mm.c, we don't
think asm.js has enough in the wild usage to justify benchmarking.
2025-01-24 12:01:19 -05:00
Keith Miller
5c0b3411ec
Merge pull request #13 from camillobruni/2024-11-22_driver_prep
Directly use BenchmarkClass
2025-01-24 11:57:34 -05:00
Keith Miller
aed409aa9b
Merge pull request #11 from camillobruni/2024-11-26_github_actions
Implement end2end tests
2025-01-24 09:50:41 -05:00
Camillo Bruni
187b6e0d44 Merge branch 'main' of github.com:camillobruni/JetStream into 2024-11-22_driver_prep 2025-01-23 18:24:00 +01:00
Camillo Bruni
50af620c07 minor startDelay fix 2025-01-23 15:02:54 +01:00
Keith Miller
9f15b81f6c
Merge pull request #27 from danleh/richards-js-scoring
Move richards-wasm to JS-style scoring
2025-01-23 08:25:05 -05:00
Keith Miller
1710e9ff6a
const variable isn't const 2025-01-22 15:47:57 -05:00
Keith Miller
935f262507
Merge pull request #32 from danleh/performance-mark-measure
Add performance.mark/measure to runner
2025-01-22 14:02:02 -05:00
Daniel Lehmann
b425021c9e Add performance.mark/measure to runner
...which can help to profile only code which is actually measured, not the setup and driver.

Also some drive-by fixes: Add sqlite3-wasm to `wasm-cli.js` runner and fix typo.
2025-01-22 13:17:39 +01:00
Keith Miller
b23b9b9d45
Revert "Merge pull request #23 from WebKit/tfjs-to-js-scoring"
This reverts commit 3f505214e6, reversing
changes made to c1a122d6d6.
2025-01-21 14:12:51 -05:00
Camillo Bruni
7daaa8d8f3 benchmarkNames should be mutable 2025-01-21 17:36:30 +01:00
Camillo Bruni
a01d3d3669 remove unused benchmark class 2025-01-21 17:35:08 +01:00
Camillo Bruni
2c5f206f96 Merge branch 'main' of github.com:camillobruni/JetStream into 2024-11-22_driver_prep 2025-01-21 17:29:50 +01:00
Camillo Bruni
8add658270 Merge branch 'main' of github.com:camillobruni/JetStream into 2024-11-26_github_actions 2025-01-21 17:24:37 +01:00
Camillo Bruni
513b6bce2c Merge branch 'main' of github.com:camillobruni/JetStream into 2024-11-26_ms 2025-01-21 16:55:44 +01:00
Camillo Bruni
c33f40a113 pre-format 2025-01-21 16:50:25 +01:00
Keith Miller
707b7a8164
Merge pull request #26 from danleh/gcc-loops-js-scoring
Convert gcc-loops-wasm to JS-style scoring
2025-01-21 09:04:31 -05:00
Daniel Lehmann
4b48649be5 add comments, lower iterations, check profiles roughly match 2025-01-20 17:07:59 +01:00
Daniel Lehmann
105ce7a92d Move richards-wasm to JS-style scoring 2025-01-16 16:25:45 +01:00
Keith Miller
3f505214e6
Merge pull request #23 from WebKit/tfjs-to-js-scoring
Move tfjs to first, average, worst scoring.
2025-01-16 09:23:02 -05:00
Keith Miller
176a7f70db
Change tfjs-wasm-simd iteration count to 40 (worst case count to 3)
This makes the runtime for the benchmark ~7s/9s/11s for jsc/v8/sm respectively on my M4 Max MBP.
2025-01-16 08:59:16 -05:00
Daniel Lehmann
0b4dd86942 Convert gcc-loops to JS-style scoring
Build with the same options (-O2, Emscripten MODULARIZE, etc.) as TSF-wasm before.
Use the WasmEMCCBenchmark class introduced earlier.
Since we want to run multiple iterations (for first, average, worst scoring), change to small workload size.
Each individual iteration still runs >20ms, which we agreed on in the last sync.

Drive-by fixes:
The WasmEMCCBenchmark setup code needs to make sure we don't automatically run main() after setupModule().
The TSF-wasm build script uses `set -o pipefail`, which is a bash option, hence change shebang line.
Add Wall time output also for WasmEMCCBenchmark and WasmLegacyBenchmark.
2025-01-15 17:00:25 +01:00
Keith Miller
c65b03a5c1
Merge pull request #21 from WebKit/remove-float-mm-c
Remove float-mm.c asm.js test
2025-01-08 17:15:20 -05:00
Keith Miller
7d45752639
Move tfjs to first, average, worst scoring.
Since this test is relatively slow per iteration I reduced the iteration counts to:
non-simd: 15 iterations with worst 2.
simd: 80 iterations with worst 4 (default).

Also, I moved all the benchmark files to a tfjs directory to help organize the wasm directory a bit.
2024-12-21 06:34:05 -07:00