Binary Size Metrics
This document lists metrics used to track binary size.
Metrics for Desktop
Alerting
- Alerts are sheriffed as part of the main perf sherif rotation.
- Alerts generally fire for ~100kb jumps.
Metrics for Android
For Googlers, more information available at go/chrome-apk-size.
- Sizes are collected by //build/android/resource_sizes.py.
- How to analyze Android binary size discussed in apk_size_regressions.md#debugging-apk-size-increase.
- Sizes for
ChromePublic.apk
, ChromeModernPublic.apk
, MonochromePublic.apk
, SystemWebview.apk
are tracked.- But only
MonochromePublic.apk
is actively monitored.
- We care most about on-disk size (for users with small device storage)
- But also care about patch size (so that browser updates get applied)
Normalized APK Size
- Telemetry Graph
- Monitored by Binary Size Sheriffs.
- Alerts fire for changes of 16kb or more.
- Computed as:
- The size of an APK
- With all native code as if it were stored uncompressed.
- With all dex code as if it were stored compressed and also extracted.
- With all translations as if they were not missing (estimates size of missing translations based on size of english strings).
- Without translation-normalization, translation dumps cause jumps.
Native Code Size Metrics
- Telemetry Graph
- File size of
libchrome.so
- Code vs data sections (.text vs .data + .rodata)
Java Code Size Metrics
- Telemetry Graph
- File size of
classes.dex
- “Dex”: Counts of the number of fields, methods, strings, types.
- “DexCache”: The number of bytes of RAM required to load our dex file (computed from counts)
Breakdown Metrics
- Telemetry Graph
- Compressed size of each apk component.
- The sum of these equals APK Size (which can be found under “Install Size Metrics”: “APK Size”)
Install Metrics
- Telemetry Graph
- Estimated installed size: How much disk is required to install Chrome on a device.
- This is just an estimate, since actual size depends on Android version (e.g. Dex overhead is very different for pre-L vs L+).
- Does not include disk used up by profile, etc.
- We believe it to be fairly accurate for all L+ devices (less space is required for Dalvik runtime pre-L).
- The sum of these equals Estimated installed size.
Transfer Size Metrics
- Deflated apk size:
- Telemetry Graph
- Only relevant for non-patch updates of Chrome (new installs, or manual app updates)
- Patch Size:
Uncompressed Metrics
- Telemetry Graph
- Uncompressed size of classes.dex, locale .pak files, etc
- Reported only for things that are compressed within the .apk