(pprof) top20 Total: 171 samples 128 74.9% 74.9% 128 74.9% etext
任何人都可以解释这是什么,如果有办法减少影响?
解决方法 我遇到同样的问题,然后我发现这个: pprof broken in go 1.2?.要验证它是一个真正的1.2错误我写了下面的“你好世界”程序:package mainimport ( "fmt" "testing")func BenchmarkPrintln( t *testing.B ){ TestPrintln( nil )}func TestPrintln( t *testing.T ){ for i := 0; i < 10000; i++ { fmt.Println("hello " + " world!") }}
你可以看到它只调用fmt.Println.
你可以用“go test -c”来编译.
运行“./test.test -test.bench. -test.cpuprofile = test.prof”
看到结果“go tool pprof test.test test.prof”
(pprof) top10Total: 36 samples 18 50.0% 50.0% 18 50.0% syscall.Syscall 8 22.2% 72.2% 8 22.2% etext 4 11.1% 83.3% 4 11.1% runtime.usleep 3 8.3% 91.7% 3 8.3% runtime.futex 1 2.8% 94.4% 1 2.8% MHeap_AllocLocked 1 2.8% 97.2% 1 2.8% fmt.(*fmt).padString 1 2.8% 100.0% 1 2.8% os.epipecheck 0 0.0% 100.0% 1 2.8% MCentral_Grow 0 0.0% 100.0% 33 91.7% System 0 0.0% 100.0% 3 8.3% _/home/xxiao/work/test.BenchmarkPrintln
上述结果是使用去1.2.1
然后我用同样的事情去1.1.1,得到以下结果:
(pprof) top10Total: 10 samples 2 20.0% 20.0% 2 20.0% scanblock 1 10.0% 30.0% 1 10.0% fmt.(*pp).free 1 10.0% 40.0% 1 10.0% fmt.(*pp).printFIEld 1 10.0% 50.0% 2 20.0% fmt.newPrinter 1 10.0% 60.0% 2 20.0% os.(*file).Write 1 10.0% 70.0% 1 10.0% runtime.MCache_Alloc 1 10.0% 80.0% 1 10.0% runtime.exitsyscall 1 10.0% 90.0% 1 10.0% sweepspan 1 10.0% 100.0% 1 10.0% sync.(*Mutex).Lock 0 0.0% 100.0% 6 60.0% _/home/xxiao/work/test.BenchmarkPrintln
你可以看到,1.2.1的结果没有什么意义.大部分时间都是Syscall和etext.而1.1.1结果正确.
所以我确信这是一个1.2.1的错误.而且我转而在我的实际项目中使用了1.1.1,我对现在的分析结果感到满意.
总结以上是内存溢出为你收集整理的linux – Golang:什么是etext?全部内容,希望文章能够帮你解决linux – Golang:什么是etext?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)