Skip to content

microsoft/SizeBench

Repository files navigation

Build Status

Welcome to the SizeBench repo

This repository contains the SizeBench tool for doing size analysis of PE files (Portable Executables such as DLL, EXE, and SYS files) typically used on Windows. It's intended to help with questions like:

  • Why is this binary so big?
  • What can be done to make it smaller?

If you're a user of the tool

You can get help by opening SizeBench and going to Help > Show Help. Or, in this repo the usage docs are in the EndUserDocs folder.

For an introduction to this tool, see the announcement blog post

Quick Start

Install SizeBench from the Microsoft Store.

Launch it from the start menu, then select Examine a Binary to pick a PE file and its symbols. Or select Start a diff to pick a "before" PE with its symbols and an "after" PE with its symbols.

On the command line, use sizebench.exe mybinary.exe mysymbols.pdb to analyze a single binary, or sizebench.exe ..\baseline\mybinary.exe ..\baseline\pdb\mybinary.pdb mybinary.exe .\pdb\mybinary.pdb to start a comparison session.

Contributing

We are excited to work alongside you, our amazing community!

BEFORE you start work on a feature/fix, please read & follow our Contributor's Guide to help avoid any wasted or duplicate effort.

Communicating with the Team

The easiest way to communicate with the team is via GitHub issues and GitHub discussions.

Please file new issues, feature requests and suggestions, but DO search for similar open/closed pre-existing issues before creating a new issue.

Trademarks

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines.

Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.

Project Road Maps

The next expected work should be roughly this:

  1. Move to GitHub Actions for CI and PR pipelines.
  2. Create and publish NuGet package for the Analysis Engine.
  3. Support diffing of SourceFiles.
  4. Support diffing of Inline Sites.
  5. Improved support for binaries containing Rust code.

About

SizeBench is a binary size investigation tool for Windows

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •