mirror of
https://github.com/go-sylixos/elvish.git
synced 2024-11-27 23:11:20 +08:00
pkg/md/mdrun: Support -cpuprofile.
This commit is contained in:
parent
e829d78748
commit
633c353442
|
@ -6,13 +6,15 @@ import (
|
|||
"fmt"
|
||||
"io"
|
||||
"os"
|
||||
"runtime/pprof"
|
||||
|
||||
"src.elv.sh/pkg/md"
|
||||
)
|
||||
|
||||
var (
|
||||
codec = flag.String("codec", "html", "codec to use; one of html, trace, fmt, tty")
|
||||
width = flag.Int("width", 0, "text width; relevant with fmt or tty")
|
||||
cpuprofile = flag.String("cpuprofile", "", "name of file to store CPU profile in")
|
||||
codec = flag.String("codec", "html", "codec to use; one of html, trace, fmt, tty")
|
||||
width = flag.Int("width", 0, "text width; relevant with fmt or tty")
|
||||
)
|
||||
|
||||
func main() {
|
||||
|
@ -24,6 +26,20 @@ func main() {
|
|||
fmt.Fprintln(os.Stderr, "read stdin:", err)
|
||||
os.Exit(2)
|
||||
}
|
||||
if *cpuprofile != "" {
|
||||
f, err := os.OpenFile(*cpuprofile, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0o644)
|
||||
if err != nil {
|
||||
fmt.Printf("create cpu profile file %q: %v\n", *cpuprofile, err)
|
||||
os.Exit(2)
|
||||
}
|
||||
defer f.Close()
|
||||
err = pprof.StartCPUProfile(f)
|
||||
if err != nil {
|
||||
fmt.Println("start cpu profile:", err)
|
||||
os.Exit(2)
|
||||
}
|
||||
defer pprof.StopCPUProfile()
|
||||
}
|
||||
fmt.Print(md.RenderString(string(bs), c))
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user