name: crossbench description: Running benchmarks with Crossbench.
Crossbench
Crossbench is the central chrome runner harness for press benchmarks like JetStream, Speedometer or Motionmark, as well as for loading live pages.
Location and Setup
- Location: It is often installed in
~/crossbenchor inCHROMIUM_CHECKOUT/src/tools/perf/cb, but could be anywhere. If not found in standard locations, ask the user for the path. - Update: Always ensure you are running the latest version.
Basic Usage
Navigate to the crossbench directory and use ./cb.py directly (or via poetry
if vpython3 is not available).
# Run the latest stable JetStream with a specific d8 binary
./cb.py jetstream --browser=/path/to/d8 --env-validation=warn
And for chrome:
./cb.py jetstream --browser=out/x64.release/chrome --env-validation=warn
Filtering
- You can run benchmark workload separate with
--separatefor instance to generate individual profiles for each sub test - Use
--story=XXXto only run a specific test
Crossbench MCP
Use ./cb.py mcp to launch a local MCP to interact with benchmarks.
Profiling with Probes
- Use
./cb.py describe probesto list all probes. - Use
./cb.py describe probe v8.logto show detailed help for a specific probe.
Important probes for v8 investigation:
--probe='v8.log'to generate av8.logfile (see v8-log skill for more information on how to analyse the log file)--probe='profiling'to generate a Linuxperftrace.--probe=perfettoto collected perfetto traces
Results:
- Crossbench prints the results directory and provides a summary
cb.results.jsonfile listing all probe results
Best Practices
- Use
--env-validation=warnto bypass environment input prompts. - Use
./cb.py describeto understand subcommands and probes. - Prefer creating JSON files instead of HJSON for configurations to minimize quoting errors.
- Validate generated configs with
poetry run cb_validate_hjson -- file.hjson.
Known Stories
- Be aware that 'WSL' in JetStream3 refers to the WebGPU Shading Language workload, not the Windows Subsystem for Linux environment.
Environment Fallbacks
- Suggest install depot_toools if vpython3 is not available
- Use poetry as backup if vpython3 is not available.
- The JetStream benchmark can be run directly with d8