GO · 성능
pprof CPU 프로파일링
runtime/pprof과 net/http/pprof로 CPU 사용을 분석합니다. 핫스팟을 찾아 최적화합니다.
성능고급pprofcpuprofilingoptimization
핵심 설명
runtime/pprof과 net/http/pprof로 CPU 사용을 분석합니다. 핫스팟을 찾아 최적화합니다.
Go code
package main
import (
"fmt"
"os"
"runtime/pprof"
)
func heavyWork() int {
sum := 0
for i := 0; i < 10_000_000; i++ {
sum += i * i
}
return sum
}
func main() {
// CPU 프로파일 생성
f, _ := os.Create("cpu.prof")
defer f.Close()
pprof.StartCPUProfile(f)
defer pprof.StopCPUProfile()
// 프로파일할 코드
result := heavyWork()
fmt.Println("결과:", result)
fmt.Println("\n프로파일 분석:")
fmt.Println(" go tool pprof cpu.prof")
fmt.Println(" (pprof) top 10 # 상위 10개 함수")
fmt.Println(" (pprof) list heavyWork # 함수별 상세")
fmt.Println(" (pprof) web # 웹 시각화")
fmt.Println()
fmt.Println("HTTP 서버에서:")
fmt.Println(" import _ "net/http/pprof"")
fmt.Println(" go tool pprof http://localhost:6060/debug/pprof/profile?seconds=30")
os.Remove("cpu.prof")
}학습 팁
net/http/pprof를 import하면 /debug/pprof/ 엔드포인트가 자동 등록됩니다. 프로덕션에서는 별도 포트로 분리하세요.
주의할 점
pprof 엔드포인트를 공개 포트에 노출하면 보안 위험입니다. 내부 네트워크에서만 접근 가능하도록 설정하세요.
자주 묻는 질문
pprof CPU 프로파일링란 무엇인가요?
runtime/pprof 과 net/http/pprof 로 CPU 사용을 분석합니다. 핫스팟을 찾아 최적화합니다.
pprof CPU 프로파일링 학습 시 주의할 점은 무엇인가요?
pprof 엔드포인트를 공개 포트에 노출하면 보안 위험입니다. 내부 네트워크에서만 접근 가능하도록 설정하세요.
Continue Learning
Go 학습을 이어가세요
총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.