Repolode
Zxilly

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. 1

    Go로 설치

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

    컴파일된 Go 바이너리에서 웹 인터페이스 시작

    gsa --web golang-compiled-binary

사용 전 알아둘 점

  • AGPL-3.0 카피레프트 라이선스로 제공되며, 네트워크를 통해 제공할 경우 수정된 소스 코드를 공유해야 합니다.
  • 소스에서 빌드하려면 Go 1.27 이상이 필요합니다.
  • 심볼 정보가 제거된 바이너리를 분석하면 결과가 부정확할 수 있습니다.
  • 브라우저의 WebAssembly 버전은 네이티브 버전보다 훨씬 느립니다.

포함된 컬렉션

토픽

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

자주 묻는 질문

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 통계는 매일 갱신됩니다.

관련 프로젝트

수십 가지 포맷의 디코더를 제공하는, 바이너리 파일 포맷을 검사하고 쿼리하는 jq 스타일의 CLI 도구이자 쿼리 언어입니다.

개발 도구#binary#cli#jq
1.1만+4 이번 주256GoOther업데이트 14시간 전

캐시 정리, 앱 제거, 디스크 분석, 유지 관리와 실시간 시스템 상태 확인을 지원하는 오픈소스 macOS CLI(mo)이며, 별도의 네이티브 Mac 앱도 제공됩니다.

개발 도구#macos#cli#disk-cleaner
7.4만+736 이번 주2.6천ShellGPL-3.0업데이트 16시간 전