Плагин для webpack и CLI, который показывает содержимое бандла в виде интерактивной масштабируемой древовидной карты и помогает найти самые объёмные модули.
Zxilly/go-size-analyzer
CLI-инструмент для анализа размера скомпилированных Go-бинарников по пакетам, секциям и символам с выводом в текстовом, JSON-, HTML- и SVG-форматах, а также в веб-интерфейсе и терминальном UI.
- Звёзды
- 2,195
- Форки
- 45
- Открытые issues
- 9
- Последний коммит
- 3 дня назад
Что это?
go-size-analyzer помогает понять, из-за чего скомпилированный Go-бинарник получается большим. Инструмент разбирает ELF-, Mach-O-, PE- и экспериментальные WebAssembly-бинарники, распределяя их размер по пакетам (в том числе стандартной библиотеке и vendored-зависимостям) и секциям бинарника, таким как .rodata, .gopclntab и отладочные данные DWARF.
Результаты можно вывести в виде текстовой таблицы, экспортировать в JSON, HTML или SVG treemap либо изучить интерактивно через локальный веб-интерфейс или терминальный UI. Режим diff сравнивает два бинарника или два сохранённых результата в формате JSON и показывает прирост размера по пакетам и секциям. Это удобно для отслеживания изменений размера между версиями Go или сборками.
Инструмент также можно запускать в браузере через сборку WebAssembly, однако там он работает заметно медленнее и подходит только для небольших бинарников. Анализ stripped-бинарников поддерживается, но результаты могут быть менее точными.
Ключевые возможности
- 01Анализирует ELF-, Mach-O-, PE- и экспериментальные WebAssembly-бинарники.
- 02Разбивает размер по пакетам, стандартной библиотеке, vendored-зависимостям и секциям.
- 03Формирует отчёты в текстовом формате, JSON, HTML и в виде SVG treemap.
- 04Предоставляет интерактивный веб-интерфейс и терминальный UI.
- 05Сравнивает два бинарника или сохранённых результата в формате JSON в режиме diff.
Сценарии использования
- Поиск зависимостей, из-за которых увеличивается размер Go-бинарника сервиса или CLI-приложения.
- Отслеживание изменений размера бинарника между версиями Go или коммитами.
- Обмен интерактивной treemap-схемой размера сборки с коллегами по сети.
- Проверка того, насколько отладочные секции или символы увеличивают размер релизного бинарника.
Быстрый старт
- 1
Установить с помощью Go
go install github.com/Zxilly/go-size-analyzer/cmd/gsa@latest - 2
Запустить веб-интерфейс на скомпилированном Go-бинарном файле
gsa --web golang-compiled-binary
Что важно знать
- Лицензия AGPL-3.0 с принципом copyleft требует предоставлять изменённый исходный код, если программа доступна по сети.
- Для сборки из исходного кода требуется Go 1.27 или более поздняя версия.
- Анализ бинарных файлов без отладочных символов может быть неточным.
- Версия WebAssembly в браузере работает значительно медленнее нативной версии.
В подборках
Темы
Частые вопросы
- Что такое go-size-analyzer?
- CLI-инструмент для анализа размера скомпилированных Go-бинарников по пакетам, секциям и символам с выводом в текстовом, JSON-, HTML- и SVG-форматах, а также в веб-интерфейсе и терминальном UI. go-size-analyzer помогает понять, из-за чего скомпилированный Go-бинарник получается большим. Инструмент разбирает ELF-, Mach-O-, PE- и экспериментальные WebAssembly-бинарники, распределяя их размер по пакетам (в том числе стандартной библиотеке и vendored-зависимостям) и секциям бинарника, таким как .rodata, .gopclntab и отладочные данные DWARF.
- go-size-analyzer можно использовать бесплатно? Какая у него лицензия?
- go-size-analyzer распространяется с открытым исходным кодом под лицензией AGPL-3.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- go-size-analyzer всё ещё поддерживается?
- Активно поддерживается. Последний коммит в go-size-analyzer — 4 нояб. 2026 г..
- Для чего можно использовать go-size-analyzer?
- Поиск зависимостей, из-за которых увеличивается размер Go-бинарника сервиса или CLI-приложения. Отслеживание изменений размера бинарника между версиями Go или коммитами. Обмен интерактивной treemap-схемой размера сборки с коллегами по сети. Проверка того, насколько отладочные секции или символы увеличивают размер релизного бинарника.
- Как установить go-size-analyzer?
- Установить с помощью Go: go install github.com/Zxilly/go-size-analyzer/cmd/gsa@latest Запустить веб-интерфейс на скомпилированном Go-бинарном файле: gsa --web golang-compiled-binary
- Где скачать go-size-analyzer?
- Исходный код и инструкции по установке — на GitHub: https://github.com/Zxilly/go-size-analyzer
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Кроссплатформенный hex-редактор для реверс-инжиниринга и анализа бинарных данных с языком описания структур файлов.
Инструмент командной строки и язык запросов в духе jq для анализа бинарных форматов; включает декодеры для десятков форматов.
Интерактивный анализатор дискового пространства в терминале: находит, что занимает место, и позволяет удалять файлы прямо в TUI.
CLI с открытым исходным кодом для macOS: глубокая очистка, удаление приложений, анализ диска, обслуживание и мониторинг системы; отдельно доступно нативное приложение для Mac.
CLI-инструмент для сборки автономных PHP-бинарников без зависимостей, с выбранными расширениями, для Linux, macOS и Windows.