- 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 `~/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
Voir sur GitHub