| # Dart flute benchmark application |
| |
| This is a WasmGC build of the `flute` benchmark, a Dart application using the |
| `Flutter` UI framework. |
| It performs the Wasm/compute-only part of rendering a certain number of frames. |
| Since JetStream runs in JS engine shells, the actual rendering to a Canvas is |
| stubbed out. |
| The upstream repository containing pre-built WebAssembly binaries (which we |
| use here) is at https://github.com/mkustermann/wasm_gc_benchmarks. |
| The Dart source code of the flute application is at https://github.com/dart-lang/flute. |
| |
| ## Build Instructions |
| |
| See `build.sh` or just run it. |
| See `build.log` for the last build time, used sources, and toolchain versions. |
| |
| ## Running in JS shells |
| |
| To run the unmodified upstream benchmark, without the JetStream driver, see the |
| upstream repo. |
| In short, the main runner is `build/run_wasm.js`, which takes as arguments a |
| application-specific generated JS and Wasm file, and the arguments passed to |
| the Dart main method. |
| Since different engines / shells resolve JS modules and parse command-line |
| arguments differently, the invocations are something like (from this directory): |
| |
| ``` |
| path/to/d8 build/run_wasm.js -- flute.dart2wasm.mjs build/flute.dart2wasm.wasm -- $(date +%s.%N) 1000 |
| path/to/spidermonkey/js build/run_wasm.js build/flute.dart2wasm.mjs flute.dart2wasm.wasm -- $(date +%s.%N) 1000 |
| path/to/jsc build/run_wasm.js -- ./flute.dart2wasm.mjs build/flute.dart2wasm.wasm -- $(date +%s.%N) 1000 |
| ``` |