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 5package main 6 7import ( 8 "flag" 9 "fmt" 10 "os" 11 "runtime/pprof" 12 "time" 13) 14 15var output = flag.String("output", "", "pprof profile output file") 16 17func 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} 42