Repolode
Zxilly

Zxilly/go-size-analyzer

Herramienta de línea de comandos que desglosa el tamaño de los binarios Go compilados por paquete, sección y símbolo, y genera informes en texto, JSON, HTML o SVG, además de una interfaz web y otra de terminal.

Estrellas
2,195
Forks
45
Issues abiertos
9
Último commit
hace 3 días

¿Qué es?

go-size-analyzer responde a la pregunta de qué hace que un binario Go compilado sea grande. Analiza binarios ELF, Mach-O, PE y WebAssembly experimental, y atribuye su tamaño a los paquetes (incluida la biblioteca estándar y las dependencias vendorizadas) y a secciones del binario como .rodata, .gopclntab y los datos de depuración DWARF.

Los resultados se pueden mostrar en una tabla de texto, exportar como JSON, HTML o un treemap SVG, o explorar de forma interactiva mediante una interfaz web local o una UI de terminal. El modo diff compara dos binarios o dos resultados JSON guardados y muestra el crecimiento por paquete y sección, lo que resulta útil para seguir los cambios de tamaño entre versiones de Go o compilaciones.

La herramienta también se puede ejecutar en el navegador mediante una compilación WebAssembly, aunque allí es notablemente más lenta y solo se recomienda para binarios pequeños. El análisis de binarios stripped funciona, pero puede ser menos preciso.

Funciones clave

  • 01Analiza binarios ELF, Mach-O, PE y WebAssembly experimental.
  • 02Desglosa el tamaño por paquete, biblioteca estándar, dependencia vendorizada y sección.
  • 03Genera informes en texto, JSON, HTML y treemap SVG.
  • 04Ofrece una interfaz web interactiva y una UI de terminal.
  • 05Compara dos binarios o resultados JSON guardados en modo diff.

Casos de uso

  • Encontrar qué dependencias aumentan el tamaño de un binario Go de servicio o CLI.
  • Seguir los cambios de tamaño de los binarios entre versiones de la cadena de herramientas de Go o commits.
  • Compartir por red con el equipo un treemap interactivo del tamaño de una compilación.
  • Comprobar si las secciones de depuración o los símbolos representan una parte importante del binario de lanzamiento.

Inicio rápido

  1. 1

    Instalar con Go

    go install github.com/Zxilly/go-size-analyzer/cmd/gsa@latest
  2. 2

    Iniciar la interfaz web con un binario de Go compilado

    gsa --web golang-compiled-binary

Antes de usarlo

  • Está bajo la licencia copyleft AGPL-3.0, que exige compartir el código fuente modificado cuando se ofrece a través de una red.
  • Para compilar desde el código fuente se necesita Go 1.27 o posterior.
  • El análisis de binarios sin símbolos puede ser impreciso.
  • La versión WebAssembly en el navegador es mucho más lenta que la versión nativa.

En colecciones

Temas

#go#binary-analysis#bundle-size#visualization#cli#treemap#dependency-analysis#analyzer#binary#dependency

Preguntas frecuentes

¿Qué es go-size-analyzer?
Herramienta de línea de comandos que desglosa el tamaño de los binarios Go compilados por paquete, sección y símbolo, y genera informes en texto, JSON, HTML o SVG, además de una interfaz web y otra de terminal. go-size-analyzer responde a la pregunta de qué hace que un binario Go compilado sea grande. Analiza binarios ELF, Mach-O, PE y WebAssembly experimental, y atribuye su tamaño a los paquetes (incluida la biblioteca estándar y las dependencias vendorizadas) y a secciones del binario como .rodata, .gopclntab y los datos de depuración DWARF.
¿go-size-analyzer es gratuito? ¿Qué licencia tiene?
go-size-analyzer es open source bajo la licencia AGPL-3.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿go-size-analyzer sigue mantenido?
Mantenimiento activo. El último commit de go-size-analyzer fue el 4 nov 2026.
¿Para qué puedo usar go-size-analyzer?
Encontrar qué dependencias aumentan el tamaño de un binario Go de servicio o CLI. Seguir los cambios de tamaño de los binarios entre versiones de la cadena de herramientas de Go o commits. Compartir por red con el equipo un treemap interactivo del tamaño de una compilación. Comprobar si las secciones de depuración o los símbolos representan una parte importante del binario de lanzamiento.
¿Cómo se instala go-size-analyzer?
Instalar con Go: go install github.com/Zxilly/go-size-analyzer/cmd/gsa@latest Iniciar la interfaz web con un binario de Go compilado: gsa --web golang-compiled-binary
¿Dónde consigo go-size-analyzer?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/Zxilly/go-size-analyzer

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados

Herramienta de línea de comandos y lenguaje de consulta al estilo de jq para inspeccionar y consultar formatos de archivos binarios, con decodificadores para decenas de formatos.

Herramientas para desarrolladores#binary#cli#jq
10,6 mil+7 esta semana258GoOtherActualizado hace 11 horas

CLI de código abierto para macOS (mo) para limpieza profunda, desinstalación de apps, análisis de disco, mantenimiento y estado del sistema en tiempo real, con una app nativa de Mac aparte.

74,2 mil+744 esta semana2,7 milShellGPL-3.0Actualizado hace 10 horas