You've already forked go-profiler-notes
mirror of
https://github.com/DataDog/go-profiler-notes.git
synced 2025-07-12 23:50:13 +02:00
39 lines
430 B
Go
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()
|
|
}
|
|
}
|