Chrome Release Bot (LUCI) 4762b62e7d Publish DEPS for 106.0.5249.13 hai 1 ano
..
libsupersize 4762b62e7d Publish DEPS for 106.0.5249.13 hai 1 ano
.style.yapf 4762b62e7d Publish DEPS for 106.0.5249.13 hai 1 ano
BUILD.gn 4762b62e7d Publish DEPS for 106.0.5249.13 hai 1 ano
DIR_METADATA 4762b62e7d Publish DEPS for 106.0.5249.13 hai 1 ano
OWNERS 4762b62e7d Publish DEPS for 106.0.5249.13 hai 1 ano
PRESUBMIT.py 4762b62e7d Publish DEPS for 106.0.5249.13 hai 1 ano
README.md 4762b62e7d Publish DEPS for 106.0.5249.13 hai 1 ano
diagnose_bloat.py 4762b62e7d Publish DEPS for 106.0.5249.13 hai 1 ano
find_large_commits.py 4762b62e7d Publish DEPS for 106.0.5249.13 hai 1 ano
generate_commit_size_analysis.py 4762b62e7d Publish DEPS for 106.0.5249.13 hai 1 ano
generate_milestone_reports.py 4762b62e7d Publish DEPS for 106.0.5249.13 hai 1 ano
generate_official_build_report.py 4762b62e7d Publish DEPS for 106.0.5249.13 hai 1 ano
html_report_faq.md 4762b62e7d Publish DEPS for 106.0.5249.13 hai 1 ano
milestone_apk_sizes.py 4762b62e7d Publish DEPS for 106.0.5249.13 hai 1 ano
print_trybot_sizes.py 4762b62e7d Publish DEPS for 106.0.5249.13 hai 1 ano
sizes.gni 4762b62e7d Publish DEPS for 106.0.5249.13 hai 1 ano
sizes.py 4762b62e7d Publish DEPS for 106.0.5249.13 hai 1 ano
sizes.pydeps 4762b62e7d Publish DEPS for 106.0.5249.13 hai 1 ano
supersize 4762b62e7d Publish DEPS for 106.0.5249.13 hai 1 ano
supersize.json 4762b62e7d Publish DEPS for 106.0.5249.13 hai 1 ano
supersize.pydeps 4762b62e7d Publish DEPS for 106.0.5249.13 hai 1 ano
trybot_commit_size_checker.py 4762b62e7d Publish DEPS for 106.0.5249.13 hai 1 ano

README.md

Tools for Analyzing Chrome’s Binary Size

These tools currently focus on supporting Android. They somewhat work with Linux builds. As for Windows, some great tools already exist and are documented here:

There is also a dedicated mailing-list for binary size discussions:

Bugs and feature requests are tracked in crbug under:

Per-Milestone Binary Size Breakdowns:

Guide to dealing with chrome-perf size alerts:

[TOC]

Binary Size Trybot (android-binary-size)

  • Introduced October 2018 as a mandatory CQ bot.
  • Documented here.

Binary Size Gerrit Plugin

  • Introduced February 2020 to surface results from android-binary-size.
  • Documented here.

resource_sizes.py

SuperSize

Collects, archives, and analyzes Chrome’s binary size on Android. See //tools/binary_size/libsupersize/README.md.

diagnose_bloat.py

Determines the cause of binary size bloat between two commits. Works for Android and Linux (although Linux symbol diffs have issues, as noted below).

How it Works

  1. Builds multiple revisions using release GN args.
    • Default is to build just two revisions (before & after commit)
  2. Measures all outputs using resource_size.py and supersize.
  3. Saves & displays a breakdown of the difference in binary sizes.

Example Usage

# Build and diff monochrome_public_apk HEAD^ and HEAD.
tools/binary_size/diagnose_bloat.py HEAD -v

# Build and diff monochrome_apk HEAD^ and HEAD.
tools/binary_size/diagnose_bloat.py HEAD --enable-chrome-android-internal -v

# Build and diff monochrome_public_apk HEAD^ and HEAD without is_official_build.
tools/binary_size/diagnose_bloat.py HEAD --gn-args="is_official_build=false" -v

# Build and diff all contiguous revs in range BEFORE_REV..AFTER_REV for src/v8.
tools/binary_size/diagnose_bloat.py AFTER_REV --reference-rev BEFORE_REV --subrepo v8 --all -v

# Build and diff system_webview_apk HEAD^ and HEAD with arsc obfucstion disabled.
tools/binary_size/diagnose_bloat.py HEAD --target system_webview_apk --gn-args enable_arsc_obfuscation=false

# Display detailed usage info (there are many options).
tools/binary_size/diagnose_bloat.py -h

Other Size Tools

Bloaty McBloatface