Back to V8

Crossbench

agents/skills/crossbench/SKILL.md

15.0.202.3 KB
Original Source

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 ~/crossbench or in CHROMIUM_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).

bash
# Run the latest stable JetStream with a specific d8 binary
./cb.py jetstream --browser=/path/to/d8 --env-validation=warn

And for chrome:

bash
./cb.py jetstream --browser=out/x64.release/chrome --env-validation=warn

Filtering

  • You can run benchmark workload separate with --separate for instance to generate individual profiles for each sub test
  • Use --story=XXX to 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 probes to list all probes.
  • Use ./cb.py describe probe v8.log to show detailed help for a specific probe.

Important probes for v8 investigation:

  • --probe='v8.log' to generate a v8.log file (see v8-log skill for more information on how to analyse the log file)
  • --probe='profiling' to generate a Linux perf trace.
  • --probe=perfetto to collected perfetto traces

Results:

  • Crossbench prints the results directory and provides a summary cb.results.json file listing all probe results

Best Practices

  • Use --env-validation=warn to bypass environment input prompts.
  • Use ./cb.py describe to 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