Bloaty is a size profiler for binaries that analyzes compiled executables to show which symbols and compile units consume the most space.
The tool solves the problem of understanding binary bloat by performing deep analysis of compiled code. It uses custom parsers for ELF, DWARF, and Mach-O formats to attribute every byte of a binary to the symbol or compile unit that produced it. The profiler can disassemble binaries to find references to anonymous data, ensuring accurate accounting of all space usage. It supports multiple file formats including ELF, Mach-O, PE/COFF, and WebAssembly, and can combine multiple data sources like compile units, symbols, sections, and segments into hierarchical reports.
Bloaty suits developers and build engineers who need to understand and reduce binary size. It works well in continuous integration pipelines for tracking binary growth across builds, and is particularly valuable for embedded systems, mobile applications, and performance-critical software where binary size matters. The tool's ability to generate size diffs makes it ideal for catching unexpected bloat in pull requests. Its support for separate debug files allows analysis of stripped binaries while retaining full debugging information. The flexible demangling of C++ symbols and custom regex-based data sources let users bucket and filter results according to their specific needs. As a statically-linked C++ binary, Bloaty is straightforward to deploy without managing dependencies.
The project maintains an active issue and pull request workflow with a testing framework documented in the repository. Development follows a pattern of accepting community contributions with an expectation that tests accompany submissions. The codebase bundles several dependencies as Git submodules while preferring system versions when available, indicating a pragmatic approach to dependency management. The project explicitly notes it is not an official Google product, positioning it as a community-maintained tool despite its origin.