번들의 어떤 모듈이 가장 많은 용량을 차지하는지 보여 주는, 확대·축소 가능한 인터랙티브 트리맵을 렌더링하는 webpack 플러그인 및 CLI입니다.
Zxilly/go-size-analyzer
컴파일된 Go 바이너리의 크기를 패키지, 섹션, 심볼별로 분석하고 텍스트, JSON, HTML, SVG, 웹 및 터미널 UI로 출력하는 명령줄 도구입니다.
- 스타
- 2,194
- 포크
- 45
- 열린 이슈
- 9
- 마지막 커밋
- 그저께
어떤 프로젝트인가요?
go-size-analyzer는 컴파일된 Go 바이너리가 커지는 원인을 파악하는 도구입니다. ELF, Mach-O, PE 및 실험적 WebAssembly 바이너리를 파싱하고, 표준 라이브러리와 벤더링된 의존성을 포함한 패키지와 .rodata, .gopclntab, DWARF 디버그 데이터 같은 바이너리 섹션별로 크기를 분석합니다.
결과는 텍스트 표로 출력하거나 JSON, HTML, SVG 트리맵으로 내보낼 수 있으며, 로컬 웹 인터페이스나 터미널 UI에서 대화형으로 살펴볼 수도 있습니다. diff 모드는 두 바이너리 또는 저장해 둔 JSON 결과 두 개를 비교해 패키지별·섹션별 크기 증가분을 보여주므로 Go 버전이나 빌드 간 크기 변화를 추적하는 데 유용합니다.
WebAssembly 빌드를 사용하면 브라우저에서도 실행할 수 있지만 속도가 눈에 띄게 느려, 작은 바이너리에만 사용하는 것이 좋습니다. strip된 바이너리도 분석할 수 있지만 정확도가 떨어질 수 있습니다.
핵심 기능
- 01ELF, Mach-O, PE 및 실험적 WebAssembly 바이너리를 분석합니다.
- 02패키지, 표준 라이브러리, 벤더링된 의존성 및 섹션별로 크기를 분석합니다.
- 03텍스트, JSON, HTML 및 SVG 트리맵 보고서를 출력합니다.
- 04대화형 웹 인터페이스와 터미널 UI를 제공합니다.
- 05diff 모드에서 두 바이너리 또는 저장된 JSON 결과를 비교합니다.
활용 사례
- Go 서비스나 CLI 바이너리의 크기를 키우는 의존성을 찾습니다.
- Go 툴체인 버전이나 커밋 간 바이너리 크기 변화를 추적합니다.
- 빌드 결과의 대화형 크기 트리맵을 네트워크를 통해 팀원과 공유합니다.
- 디버그 섹션이나 심볼이 릴리스 바이너리 크기에서 큰 비중을 차지하는지 확인합니다.
빠른 시작
- 1
Go로 설치
go install github.com/Zxilly/go-size-analyzer/cmd/gsa@latest - 2
컴파일된 Go 바이너리에서 웹 인터페이스 시작
gsa --web golang-compiled-binary
사용 전 알아둘 점
- AGPL-3.0 카피레프트 라이선스로 제공되며, 네트워크를 통해 제공할 경우 수정된 소스 코드를 공유해야 합니다.
- 소스에서 빌드하려면 Go 1.27 이상이 필요합니다.
- 심볼 정보가 제거된 바이너리를 분석하면 결과가 부정확할 수 있습니다.
- 브라우저의 WebAssembly 버전은 네이티브 버전보다 훨씬 느립니다.
포함된 컬렉션
토픽
자주 묻는 질문
- go-size-analyzer은(는) 무엇인가요?
- 컴파일된 Go 바이너리의 크기를 패키지, 섹션, 심볼별로 분석하고 텍스트, JSON, HTML, SVG, 웹 및 터미널 UI로 출력하는 명령줄 도구입니다. go-size-analyzer는 컴파일된 Go 바이너리가 커지는 원인을 파악하는 도구입니다. ELF, Mach-O, PE 및 실험적 WebAssembly 바이너리를 파싱하고, 표준 라이브러리와 벤더링된 의존성을 포함한 패키지와 .rodata, .gopclntab, DWARF 디버그 데이터 같은 바이너리 섹션별로 크기를 분석합니다.
- go-size-analyzer은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- go-size-analyzer은(는) AGPL-3.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- go-size-analyzer은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. go-size-analyzer의 마지막 커밋은 2026년 11월 4일입니다.
- go-size-analyzer은(는) 어디에 사용할 수 있나요?
- Go 서비스나 CLI 바이너리의 크기를 키우는 의존성을 찾습니다. Go 툴체인 버전이나 커밋 간 바이너리 크기 변화를 추적합니다. 빌드 결과의 대화형 크기 트리맵을 네트워크를 통해 팀원과 공유합니다. 디버그 섹션이나 심볼이 릴리스 바이너리 크기에서 큰 비중을 차지하는지 확인합니다.
- 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를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
리버스 엔지니어링과 바이너리 분석을 위한 크로스 플랫폼 hex 에디터로, 파일 구조를 파싱하는 패턴 언어를 제공합니다.
수십 가지 포맷의 디코더를 제공하는, 바이너리 파일 포맷을 검사하고 쿼리하는 jq 스타일의 CLI 도구이자 쿼리 언어입니다.
디렉터리를 스캔해 디스크 공간을 차지하는 항목을 찾고 TUI에서 삭제하는 인터랙티브 분석 도구
캐시 정리, 앱 제거, 디스크 분석, 유지 관리와 실시간 시스템 상태 확인을 지원하는 오픈소스 macOS CLI(mo)이며, 별도의 네이티브 Mac 앱도 제공됩니다.
Linux, macOS, Windows에서 원하는 확장 기능을 포함한 독립 실행형 무의존성 PHP 바이너리를 빌드하는 CLI 도구입니다.