다음 칼럼은 golang 튜토리얼 칼럼에서 여러분에게 golang CPU 성능 분석을 소개합니다. 도움이 필요한 친구들에게 도움이 되길 바랍니다!
(1) time 명령(Linux 시스템에서)
time go run a.go
real: 프로그램 시작부터 끝까지 소요된 실제 시간
user: the Elapsed time
sys: 프로그램이 커널에서 보낸 시간
일반적으로 real>=user+sys
(2) /usr/bin/time 명령(Linux 시스템에서)
/usr/bin/time -v go run a.go
이 명령은 CPU 점유율, 메모리 사용량, 프로세스 전환, 파일 시스템 IO, 소켓 상황을 볼 수 있습니다.
(1) 프로그램에 "net/http/pprof"를 도입하고 pprof를 활성화합니다. 모니터링
import _
http.ListenAndServe("0.0.0.0:10000", nil)
程序结束
브라우저를 통해 CPU 정보 및 상태 확인
http://127.0.0.1:10000/debug/pprof
참고, 일정 시간 동안 프로그램이 실행될 때까지 기다린 후 프로필 파일을 클릭하면 완료됩니다(최소 30초)
(2) 사용 pprof
go tool pprof [binary] [profile] //binary二进制文件 profile 要分析的文件
top //查看当前profile文件的cpu使用率
flat 함수 자체 코드의 실행 시간
flat% 함수 자체 코드의 실행 시간은 CPU 시간의 백분율을 차지합니다.
cum은 함수 자체 코드 + 호출된 모든 함수를 나타냅니다.
cum의 실행 시간 %는 함수 자체 코드 + 호출된 모든 함수의 실행 시간을 나타내며 총 CPU 시간 소비 백분율을 고려합니다.
각 행의 flat%의 합계% 및 위의 모든 것의 flat% 합계
(3) go 도구 pprof 프로필 파일
디버깅할 프로그램을 시작하고 다른 터미널에서 go tool pprof http://localhost:10000/debug/pprof/profile?seconds= 실행 60
(4) 시각적 구조 다이어그램
先在终端运行 go tool pprof [binary] [profile] ,然后输入web,浏览器会弹出一个可视化的图片。
자세한 내용은 기술 기사를 보려면 go 언어 튜토리얼 칼럼을 방문하세요!
위 내용은 golang CPU 성능 분석 정보의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!