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

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