1
0
mirror of https://github.com/DataDog/go-profiler-notes.git synced 2025-07-12 23:50:13 +02:00
Files
go-profiler-notes/guide/cpu-max-stack-depth.go
Felix Geisendörfer ed718f3c79 Small change
2022-01-13 14:15:27 +01:00

39 lines
430 B
Go

//go:build ignore
// +build ignore
package main
import (
"os"
"runtime/pprof"
)
func main() {
pprof.StartCPUProfile(os.Stdout)
defer pprof.StopCPUProfile()
belowLimit()
aboveLimit()
}
func belowLimit() {
atDepth(32, cpuHog)
}
func aboveLimit() {
atDepth(64, cpuHog)
}
func cpuHog() {
for i := 0; i < 5000*1000*1000; i++ {
}
}
func atDepth(n int, fn func()) {
if n > 0 {
atDepth(n-1, fn)
} else {
fn()
}
}