1 Star 0 Fork 0

WisdomClassroom / core

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
ppof.go 2.02 KB
一键复制 编辑 原始数据 按行查看 历史
哔u哔u 提交于 2020-01-15 15:01 . type:fix
/*******************************************************************************
* Copyright 2020 huanggefan.cn
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
******************************************************************************/
package core
import (
"log"
"net/http"
"net/http/pprof"
"path"
)
const helpInfoFormatStr = `
---------------------------------------------------------------------
look at the heap profile:
go tool pprof '%s'
look at a 5-second CPU profile:
go tool pprof '%s'
look at the goroutine blocking profile:
go tool pprof '%s'
collect a 5-second execution trace:
wget '%s'
look at the holders of contended mutexes:
go tool pprof '%s'
view all available profiles:
open %s
---------------------------------------------------------------------
`
func StartPPOFDebug(server http.Server, showHelp bool) {
var httpHandler = http.NewServeMux()
var indexListen = path.Join(server.Addr, "/debug/pprof/")
server.Handler = httpHandler
httpHandler.HandleFunc("/debug/pprof/", pprof.Index)
httpHandler.HandleFunc("/debug/pprof/cmdline", pprof.Cmdline)
httpHandler.HandleFunc("/debug/pprof/profile", pprof.Profile)
httpHandler.HandleFunc("/debug/pprof/symbol", pprof.Symbol)
httpHandler.HandleFunc("/debug/pprof/trace", pprof.Trace)
if showHelp {
log.Printf(helpInfoFormatStr,
indexListen+"/heap", indexListen+"/profile?seconds=5", indexListen+"/block",
indexListen+"/trace?seconds=5", indexListen+"/mutex", "http://"+indexListen+"/",
)
}
if err := server.ListenAndServe(); err != nil {
log.Fatalln(err)
}
}
1
https://gitee.com/WisdomClassroom/core.git
git@gitee.com:WisdomClassroom/core.git
WisdomClassroom
core
core
v0.7.1

搜索帮助