Skip to content

Commit

Permalink
调整 main 函数
Browse files Browse the repository at this point in the history
  • Loading branch information
caixw committed Dec 25, 2017
1 parent 10c2115 commit bed8c47
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 19 deletions.
3 changes: 1 addition & 2 deletions .travis.yml
Expand Up @@ -11,5 +11,4 @@ install:
- go get github.com/issue9/is
- go get github.com/issue9/logs/writers
- go get gopkg.in/yaml.v2
- go get golang.org/x/text/language
- go get golang.org/x/text/message
- go get golang.org/x/text
2 changes: 1 addition & 1 deletion docs/index.html
Expand Up @@ -99,9 +99,9 @@ <h3>命令行参数</h3>
<tr><td>-h</td><td>显示帮助信息</td></tr>
<tr><td>-v</td><td>显示版本信息</td></tr>
<tr><td>-g</td><td>在当前目录下创建配置文件模板</td></tr>
<tr><td>-wd</td><td>指定工作目录</td></tr>
<tr><td>-languages</td><td>列出当前支持的语言</td></tr>
<tr><td>-encodings</td><td>列出当前支持的编码</td></tr>
<tr><td>-wd</td><td>指定工作目录</td></tr>
<tr><td>-pprof</td><td>指定个性能测试项,目前支持 <var>cpu</var><var>mem</var> 两个选项</td></tr>
</tbody>
</table>
Expand Down
25 changes: 9 additions & 16 deletions main.go
Expand Up @@ -65,34 +65,27 @@ func main() {
return
}

/* 对 pprof 的处理,pprof 需要运行程序,所以注意关闭文件的时间。 */
if len(*pprofType) > 0 {
profile := filepath.Join(*wd, *pprofType+".prof")
f, err := os.Create(profile)
if err != nil { // 不能创建文件,则忽略 pprof 相关操作
erro.Println(err)
return
}

defer func() {
if err = f.Close(); err != nil {
buf := new(bytes.Buffer)
defer func() { // 在程序结束时,将内容写入到文件
profile := filepath.Join(*wd, *pprofType+".prof")
if err := ioutil.WriteFile(profile, buf.Bytes(), os.ModePerm); err != nil {
erro.Println(err)
return
}
info.Println(locale.Sprintf(locale.FlagPprofWritedSuccess, profile))
}()

switch strings.ToLower(*pprofType) {
case "mem":
case vars.PprofMem:
defer func() {
if err = pprof.Lookup("heap").WriteTo(f, 1); err != nil {
if err := pprof.Lookup("heap").WriteTo(buf, 1); err != nil {
erro.Println(err)
}
}()
case "cpu":
if err := pprof.StartCPUProfile(f); err != nil {
case vars.PprofCPU:
if err := pprof.StartCPUProfile(buf); err != nil {
erro.Println(err)
}

defer pprof.StopCPUProfile()
default:
erro.Println(locale.Sprintf(locale.FlagInvalidPprrof))
Expand Down
4 changes: 4 additions & 0 deletions vars/vars.go
Expand Up @@ -31,6 +31,10 @@ const (
// 需要保证存在于 locale.locales 中,否则运行时会报错。
DefaultLocale = "zh-Hans"

// 两个性能文件的名称
PprofCPU = "cpu"
PprofMem = "mem"

// 生成的 JSON 数据存放的目录
JSONDataDirName = "data"

Expand Down

0 comments on commit bed8c47

Please sign in to comment.