A code size profiler for WebAssembly that analyzes call graphs to identify and eliminate bloat.
Twiggy is a code size profiler for WebAssembly (Wasm) that analyzes binary call graphs to identify why functions are included and calculate their retained size. It helps developers understand and reduce binary bloat, making Wasm modules smaller and more efficient. The tool answers questions about function dependencies and potential savings from code removal.
WebAssembly developers, especially those using Rust, who need to optimize binary size for web applications, games, or embedded systems where download speed and memory usage are critical.
Twiggy offers specialized, actionable insights into Wasm binary composition, enabling precise size optimization that generic profilers may miss. Its focus on retained size and call graph analysis provides a unique advantage for eliminating dead code efficiently.
Twiggy🌱 is a code size profiler
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Tailored explicitly for WebAssembly, addressing unique size constraints that generic profilers might miss, as highlighted in its philosophy and features.
Calculates the total space saved by removing a function and all dependent dead code, providing actionable insights for effective size reduction, a key feature emphasized in the README.
Traces function dependencies to show why each function is included, helping identify root causes of binary bloat, which is central to its analysis method.
Built by the Rust and WebAssembly Working Group, ensuring it's well-maintained and aligned with the needs of the Wasm ecosystem, as noted in the project description.
Lacks a graphical user interface, which can be less intuitive for users accustomed to visual profiling tools, requiring reliance on terminal commands.
Requires Rust to be installed for installation via Cargo, adding setup overhead for developers not already in the Rust ecosystem, as specified in the install instructions.
Focuses solely on code size and does not provide runtime performance metrics, which might be necessary for comprehensive optimization beyond binary bloat.