Golang分析 – top10只显示一行100%

Golang分析 – top10只显示一行100%,第1张

概述我尝试分析我的go库,找出比c更慢的原因是什么. 我有简单的基准 func BenchmarkFile(t *testing.B) { tmpFile, err := ioutil.TempFile("", TMP_FILE_PREFIX) fw, err := NewFile(tmpFile.Name()) text := []byte("testing") f 我尝试分析我的go库,找出比c更慢的原因是什么.

我有简单的基准

func Benchmarkfile(t *testing.B) {    tmpfile,err := IoUtil.Tempfile("",TMP_file_PREFIX)    fw,err := Newfile(tmpfile.name())    text := []byte("testing")    for i := 0; i < b.N; i++ {        _,err = fw.Write(text)    }    fw.Close()}

Newfile返回我的自定义Writer,它将数据编码为我们的二进制表示,甚至压缩它们,并写入文件系统.

运行go test -bench. -memprofile mem.out -cpuprofile cpu.out我明白了

PASSBenchmarkfile-16    2000000000           0.20 ns/opok      .../writer/iowriter 9.074s

而不是分析它

# go tool pprof cpu.out Entering interactive mode (type "help" for commands)(pprof) top10930ms of 930ms total (  100%)      flat  flat%   sum%        cum   cum%     930ms   100%   100%      930ms   100%  (pprof)

我甚至尝试编写使用我的编写器的example.go app,并添加pprof.StartcpuProfile(f),如http://blog.golang.org/profiling-go-programs所示,但结果相同.

我做错了什么,如何确定我的lib的瓶颈是什么?
先感谢您

解决方法 好吧,这很容易,我想念添加二进制文件去工具pprof,它必须是

# go tool pprof write cpu.out Entering interactive mode (type "help" for commands)(pprof) top107.02s of 7.38s total (95.12%)Dropped 14 nodes (cum <= 0.04s)Showing top 10 nodes out of 32 (cum >= 0.19s)      flat  flat%   sum%        cum   cum%     6.55s 88.75% 88.75%      6.76s 91.60%  syscall.Syscall    ...

当使用基准测试时,在那里创建二进制并使用它给出相同的结果.

总结

以上是内存溢出为你收集整理的Golang分析 – top10只显示一行100%全部内容,希望文章能够帮你解决Golang分析 – top10只显示一行100%所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1267041.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存