-
Notifications
You must be signed in to change notification settings - Fork 1
Engine disk footprint
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 to signed-in users on our 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.
- Home of the Wiki
- Roadmap
- API Reference (stable)
- API Reference (master)
- Glossary
- Contributor Guide
- Chat on Discord
- Code of Conduct
- Issue triage reports
- Our Values
- Tree hygiene
- Issue hygiene and Triage
- Style guide for Flutter repo
- Project teams
- Contributor access
- What should I work on?
- Running and writing tests
- Release process
- Rolling Dart
- Manual Engine Roll with Breaking Commits
- Updating Material Design Fonts & Icons
- Postmortems
- Setting up the Framework development environment
- The Framework architecture
- The flutter tool
- API Docs code block generation
- Running examples
- Using the Dart analyzer
- The flutter run variants
- Test coverage for package:flutter
- Writing a golden-file test for package:flutter
- Setting up the Engine development environment
- Compiling the engine
- Debugging the engine
- Using Sanitizers with the Flutter Engine
- Testing the engine
- The Engine architecture
- Flutter's modes
- Engine disk footprint
- Comparing AOT Snapshot Sizes
- Custom Flutter engine embedders
- Custom Flutter Engine Embedding in AOT Mode
- Flutter engine operation in AOT Mode
- Engine-specific Service Protocol extensions
- Crashes
- Supporting legacy platforms
- Metal on iOS FAQ
- Engine Clang Tidy Linter
- Why we have a separate engine repo
- Reduce Flutter engine size with MLGO
- Setting up the Plugins development environment
- Setting up the Packages development environment
- Plugins and Packages repository structure
- Plugin Tests
- Contributing to Plugins and Packages
- Releasing a Plugin or Package
- Unexpected Plugins and Packages failures