linux – Golang:什么是etext?

前端之家收集整理的这篇文章主要介绍了linux – Golang:什么是etext?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经开始介绍一些我的Go1.2代码,而顶级项目总是被命名为’etext’.我搜索过,但找不到很多关于它的信息,而不是它可能与Go例程中的调用深度有关.然而,我没有使用任何Go例程,’etext’仍占总执行时间的75%或更多.
(pprof) top20 
Total: 171 samples
    128  74.9%  74.9%      128  74.9% etext

任何人都可以解释这是什么,如果有办法减少影响?

解决方法

我遇到同样的问题,然后我发现这个: pprof broken in go 1.2?.要验证它是一个真正的1.2错误我写了下面的“你好世界”程序:
package main

import (
    "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) top10
Total: 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) top10
Total: 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相关文章