>백엔드 개발 >Golang >고콜비스란?

고콜비스란?

青灯夜游
青灯夜游원래의
2023-01-31 19:14:373799검색

Go-callvis는 대화형 보기를 사용하여 Go 프로그램의 호출 그래프를 시각화하는 데 사용되는 golang 코드 시각화 도구입니다. "go get -u github.com/ofabry/go-callvis" 명령을 설치하세요. Go-callvis 도구의 목적은 호출 그래프의 데이터와 패키지 및 유형과의 관계를 사용하여 개발자에게 Go 프로그램의 시각적 개요를 제공하는 것입니다.

고콜비스란?

이 튜토리얼의 운영 환경: Windows 7 시스템, GO 버전 1.18, Dell G3 컴퓨터.

1. go-callvis 소개

Go-callvis는 대화형 뷰를 사용하여 Go 프로그램의 호출 그래프를 시각화하는 데 사용되는 Golang 코드 시각화 도구입니다. 이 도구의 목적은 호출 그래프의 데이터와 패키지 및 유형과의 관계를 사용하여 개발자에게 Go 프로그램의 시각적 개요를 제공하는 것입니다. 이는 코드 복잡성이 훨씬 더 높은 대규모 프로젝트에서나 단순히 다른 사람의 코드를 이해하려고 할 때 특히 유용합니다.

기능

  • go 모드에서 특정 포커스 패키지 지원

  • 프로그램

  • 패키지를 클릭하면 대화형 뷰어를 사용하여 빠르게 포커스를 전환할 수 있습니다.

  • 패키지 및/또는 방법별 유형별 그룹 함수

  • 특정 가져오기 경로 접두사로 패키지 필터링

  • 표준 라이브러리의 함수 무시

  • 다양한 유형의 함수 호출 생략

2. 종속성 실행

  • 이동 1.13+
  • Graphviz(선택 사항, -graphviz 플래그에만 필요)

3.

go get -u github.com/ofabry/go-callvis

또는

git clone https://www.php.cn/link/bb2a2fcd8984d12d9efcfcd75a7f7b38.gitcd go-callvismake install

를 설치합니다. 설치된 go-callvis 실행 파일은 $GOPATH/bin 디렉터리

에 있습니다. IV.

  • 다음과 같이 go-callvis -h를 실행하여 지원되는 모든 옵션을 나열하는 방법go-callvis -h可以列出所有受支持的选项,如下
Usage of go-callvis:
  -debug
    	Enable verbose log.
    	输出详细日志
  -file string
    	output filename - omit to use server mode
    	以文件新式输出结果,并将忽略server交互模式
  -cacheDir string
    	Enable caching to avoid unnecessary re-rendering.
    	启用缓存以避免不必要的重新渲染。
  -focus string
    	Focus specific package using name or import path. (default "main")
    	关注特定的程序包,默认为“main”包
  -format string
    	output file format [svg | png | jpg | ...] (default "svg")
    	输出文件的格式,[svg | png | jpg | ...],默认为svg
  -graphviz
    	Use Graphviz's dot program to render images.
    	使用Graphviz渲染图像
  -group string
    	Grouping functions by packages and/or types [pkg, type] (separated by comma) (default "pkg")
    	分组功能,根据包 与/或 类型分组 [pkg, type] (用逗号分开) (默认 "pkg"),例如 -group pkg,type
  -http string
    	HTTP service address. (default ":7878")
        HTTP 服务地址 (默认 ":7878")
  -ignore string
    	Ignore package paths containing given prefixes (separated by comma)
        忽略包含给定前缀的包路径(用逗号分开)
  -include string
    	Include package paths with given prefixes (separated by comma)
        包含具有给定前缀的包路径 (用逗号分开)
  -limit string
    	Limit package paths to given prefixes (separated by comma)
    	将包路径限制为给定的前缀(以逗号分隔)
  -minlen uint
    	Minimum edge length (for wider output). (default 2)
        最小边长(用于更宽的输出)。 (默认2)
  -nodesep float
    	Minimum space between two adjacent nodes in the same rank (for taller output). (default 0.35)
        同一等级中两个相邻节点之间的最小间距(用于更高的输出)。 (默认0.35)
  -nointer
    	Omit calls to unexported functions.
    	忽略对未导出函数的调用。(忽略首字母小写的函数)
  -nostd
    	Omit calls to/from packages in standard library.
        忽略标准库的调用
  -skipbrowser
    	Skip opening browser.
        跳过打开浏览器
  -tags build tags
    	a list of build tags to consider satisfied during the build. For more information about build tags, see the description of build constraints in the documentation for the go/build package
        在构建期间更适合的构建标记
        有关构建标记的更多信息,请参阅go / build软件包的文档中的构建约束说明。
  -tests
    	Include test code.
        包含测试代码
  -version
    	Show version and exit.
        显示版本号
  • 命令行格式:go-callvis [可选参数]
  • 默认情况下,输出的图在 http://localhost:7878/,可使用选项-http="ADDR:PORT"更改HTTP服务器地址。
  • 静态输出:
    • 要生成单个输出文件,使用选项-file=<file path></file>选择输出文件目标。
    • 输出格式默认为svg,使用选项-format=<svg></svg>选择其他输出格式。
  • 使用示例:
    • 解析main包 go-callvis -skipbrowser -nostd ./
    • 解析testPkg包 go-callvis -group pkg,type -focus testPkg github.com/项目具体路径
    • rrreee
  • 명령줄 형식: go-callvis [선택적 매개변수] &lt ;패키지 경로>

기본적으로 출력 이미지는 http: //localhost:7878/에 있습니다. HTTP 서버 주소를 변경하려면 -http="ADDR:PORT" 옵션을 사용하세요. 정적 출력:

단일 출력 파일을 생성하려면 -file=<file path></file> 옵션을 사용하여 출력 파일 대상을 선택하세요.

고콜비스란?출력 형식의 기본값은 svg입니다. 다른 출력 형식을 선택하려면 -format=<svg></svg> 옵션을 사용하세요.

  • 사용 예:

메인 패키지 분석 go-callvis -skipbrowser -nostd ./고콜비스란?

testPkg 패키지 분석 go-callvis -group pkg,type -focus testPkg github .com /프로젝트 특정 경로

🎜🎜5. 렌더링 설명🎜🎜🎜🎜🎜🎜🎜사양 설명🎜🎜🎜🎜🎜🎜[관련 권장 사항: 🎜Go 비디오 튜토리얼🎜, 🎜프로그래밍 교육 🎜 】🎜

위 내용은 고콜비스란?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:go pprof가 뭐야?다음 기사:go pprof가 뭐야?