mirror of
https://github.com/ScuroNeko/mtg.git
synced 2026-08-31 09:04:02 +03:00
Add PGO
This commit is contained in:
@@ -0,0 +1,3 @@
|
||||
# git config merge.theirs.name "Always accept theirs"
|
||||
# git config merge.theirs.driver "cp %B %A"
|
||||
default.pgo binary merge=theirs
|
||||
BIN
Binary file not shown.
@@ -14,6 +14,23 @@ import (
|
||||
)
|
||||
|
||||
func main() {
|
||||
// this runs profiling server. To enable it, build with prof tag
|
||||
// $ go build -tags prof
|
||||
//
|
||||
// Then you can pass a port using MTG_PROF_PORT environment variable.
|
||||
// Default is 6000
|
||||
// $ MTG_PROF_PORT=6000 mtg run config.toml
|
||||
//
|
||||
// It will run a webserver with profiling data on
|
||||
// localhost:${MTG_PROF_PORT:-6000}.
|
||||
//
|
||||
// To collect PGO do following:
|
||||
// $ curl -o default.pgo 'http://localhost:6000/debug/pprof/profile?seconds=300'
|
||||
//
|
||||
// See also https://pkg.go.dev/net/http/pprof
|
||||
// https://go.dev/blog/pprof
|
||||
runProfile()
|
||||
|
||||
cli := &cli.CLI{}
|
||||
ctx := kong.Parse(cli, kong.Vars{
|
||||
"version": getVersion(),
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
//go:build !prof
|
||||
|
||||
package main
|
||||
|
||||
func runProfile() {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
//go:build prof
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net"
|
||||
"net/http"
|
||||
_ "net/http/pprof" //nolint: gosec
|
||||
"os"
|
||||
)
|
||||
|
||||
const DefaultProfPort = "6000"
|
||||
|
||||
func runProfile() {
|
||||
port := os.Getenv("MTG_PROF_PORT")
|
||||
if port == "" {
|
||||
port = DefaultProfPort
|
||||
}
|
||||
|
||||
listener, err := net.Listen("tcp", net.JoinHostPort("127.0.0.1", port))
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
go http.Serve(listener, nil)
|
||||
}
|
||||
Reference in New Issue
Block a user