For each commit to flutter/engine the Chromebots generate treemaps illustrating the sizes of the individual components within release builds of libflutter.so
. The treemap is uploaded to Google Cloud Storage and linked from the LUCI console: Select a "Linux aot" build and search for "Open Treemap".
Alternatively, a link to a treemap can be constructed as follows:
https://storage.googleapis.com/flutter_infra_release/flutter/<REVISION>/<VARIANT>/sizes/index.html
where:
<REVISION>
is the git hash from flutter/engine for which you want the treemap, and<VARIANT>
can be any android release build, e.g.android-arm-release
orandroid-arm64-release
.
In devicelab we run various benchmarks to track the APK/IPA sizes and various (engine) artifacts contained within. These benchmarks run for every commit to flutter/flutter and are visible on our build dashboard. The most relevant benchmarks for engine size are:
- APK/IPA size of Flutter Gallery
- Android:
flutter_gallery_android__compile/release_size_bytes
- iOS:
flutter_gallery_ios__compile/release_size_bytes
- Android:
- APK/IPA size of minimal hello_world app
- Android:
hello_world_android__compile/release_size_bytes
- iOS:
hello_world_ios__compile/release_size_bytes
- Android:
- Size of bundled
icudtl.dat
- Compressed in APK:
hello_world_android__compile/icudtl_compressed_bytes
- Uncompressed:
hello_world_android__compile/icudtl_uncompressed_bytes
- Compressed in APK:
- Size of bundled
libflutter.so
(release mode)- Compressed in APK:
hello_world_android__compile/libflutter_compressed_bytes
- Uncompressed:
hello_world_android__compile/libflutter_uncompressed_bytes
- Compressed in APK:
- Size of VM & isolate snapshots (data and instructions)
- Compressed in APK:
hello_world_android__compile/snapshot_compressed_bytes
- Uncompressed:
hello_world_android__compile/snapshot_uncompressed_bytes
- Compressed in APK:
A detailed comparison of AOT snapshot sizes can be performed using the instructions documented here.