This set of tests includes microbenchmarks for core OS functionality, including Zircon syscalls and IPC primitives, as well as microbenchmarks for other layers of Fuchsia.
Some of the microbenchmarks are portable and can be run on Linux or Mac, for comparison against Fuchsia. This means that the name fuchsia_microbenchmarks should be taken to mean “microbenchmarks that are part of the Fuchsia project” rather than “microbenchmarks that only run on Fuchsia”.
This used to be called “zircon_benchmarks”, but it was renamed to reflect that it covers more than just Zircon.
This uses the perftest C++ library.
fuchsia_microbenchmarks can be run the following ways:
Iterate on Single Benchmarks: If you want to run a smaller or faster set of tests, you can invoke the fuchsia_microbenchmarks component directly and pass some of the options accepted by the perftest C++ library.
For example, the following invocation runs only the Syscall/Null
test case and prints some summary statistics:
fx test fuchsia_microbenchmarks.cm --output -- -p --filter '^Syscall/Null$'
Alternatively, for machine readable results, the following invocation will produce an output file in fuchsiaperf.json
format and will copy it back to the host in <host-output-dir>
.
fx test fuchsia_microbenchmarks.cm --output --ffx-output-directory <host-output-dir> -- -p --out /custom_artifacts/results.fuchsiaperf.json
For the full list of options, run:
fx test fuchsia_microbenchmarks.cm -- --help
Maximal: This approach uses the same end to end host test setup as Infra builds on CI and CQ. This runs the full suite multiple times, then outputs the results in fuchsiaperf.json files which can be post processed for the results.
For this, you'll need some additional setup. Follow the instructions in How to run performance tests and use this command:
fx test --e2e fuchsia_microbenchmarks_test
This will take some time because it runs the fuchsia_microbenchmarks process multiple times.
This entry point will copy the performance results (*.fuchsiaperf.json
files) back to the host in the out/test_out
directory.
Minimal: Unit test mode. To check that the tests pass, without collecting any performance results, you can run the fuchsia_microbenchmarks component directly:
fx test fuchsia_microbenchmarks.cm
This will quickly run a small number of iterations of each benchmark to verify that they run successfully.