Bloaty is a size profiler for binaries that analyzes what's taking up space inside executable files.
Bloaty is a specialized size profiler for binary files that analyzes what contributes to an executable's footprint. It uses custom parsers for formats like ELF, Mach-O, PE/COFF, and WebAssembly to accurately attribute every byte to its source, such as compile units or symbols. This helps developers understand and optimize binary size.
Bloaty is designed for developers, software engineers, and build system maintainers working on performance-critical or resource-constrained applications, such as embedded systems, mobile apps, or large-scale server software, who need to analyze and reduce binary size.
Developers choose Bloaty for its deep, accurate analysis using custom binary parsers, which provides detailed size attribution beyond basic tools. Its unique selling points include hierarchical profiling, size diffing for CI/CD, support for stripped binaries with separate debug files, and a statically-linked binary for easy deployment.
Bloaty: a size profiler for binaries
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses bespoke ELF, DWARF, and Mach-O parsers to accurately attribute every byte, providing more precise size analysis than standard tools like 'objdump' or 'nm'.
Combines multiple data sources such as compileunit and symbol into a single profile, offering a comprehensive view of binary composition for in-depth optimization.
Compares binary versions to pinpoint growth, ideal for integrating into CI/CD pipelines to catch and prevent size regressions, as highlighted in the README for automated testing.
Supports analyzing stripped executables using separate debug files, allowing security-hardened binaries to still be profiled without embedding debug info, a key feature for production environments.
Allows regex-based filtering and rewriting of data sources, enabling tailored analysis workflows, such as bucketing by custom patterns, as documented in the user guide.
PE/COFF and WebAssembly analysis is marked experimental in the README, indicating incomplete or potentially buggy functionality that may not be suitable for production use.
Requires managing Git submodules and dependencies like protobuf, which complicates the build process, especially in environments without these libraries pre-installed.
As a command-line-only tool, it lacks a GUI, hindering users who prefer visual tools for exploring and interpreting binary size data interactively.
Deep disassembly and parsing can be resource-heavy, making analysis slower for very large binaries compared to surface-level tools, which might not be ideal for frequent, quick checks.