github.com/go-asm/go@v1.21.1-0.20240213172139-40c5ead50c48/cmd/pprof/testdata/cpu.go (about) 1 // Copyright 2021 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package main 6 7 import ( 8 "flag" 9 "fmt" 10 "os" 11 "runtime/pprof" 12 "time" 13 ) 14 15 var output = flag.String("output", "", "pprof profile output file") 16 17 func main() { 18 flag.Parse() 19 if *output == "" { 20 fmt.Fprintf(os.Stderr, "usage: %s -output file.pprof\n", os.Args[0]) 21 os.Exit(2) 22 } 23 24 f, err := os.Create(*output) 25 if err != nil { 26 fmt.Fprintln(os.Stderr, err) 27 os.Exit(2) 28 } 29 defer f.Close() 30 31 if err := pprof.StartCPUProfile(f); err != nil { 32 fmt.Fprintln(os.Stderr, err) 33 os.Exit(2) 34 } 35 defer pprof.StopCPUProfile() 36 37 // Spin for long enough to collect some samples. 38 start := time.Now() 39 for time.Since(start) < time.Second { 40 } 41 }