Skip to content

Engine disk footprint

Casey Hillers edited this page Feb 24, 2023 · 5 revisions

Treemaps

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 or android-arm64-release.

Benchmarks

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
  • APK/IPA size of minimal hello_world app
    • Android: hello_world_android__compile/release_size_bytes
    • iOS: hello_world_ios__compile/release_size_bytes
  • Size of bundled icudtl.dat
    • Compressed in APK: hello_world_android__compile/icudtl_compressed_bytes
    • Uncompressed: hello_world_android__compile/icudtl_uncompressed_bytes
  • 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
  • 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

Comparing AOT Snapshot Sizes

A detailed comparison of AOT snapshot sizes can be performed using the instructions documented here.

Flutter Wiki

Process

Framework repo

The Flutter CLI Tool

Engine repo

Packages repo

Engineering Productivity

User documentation

Clone this wiki locally