linux – Golang:什么是etext?
发布时间:2020-05-27 17:04:39 所属栏目:Linux 来源:互联网
导读:我已经开始介绍一些我的Go1.2代码,而顶级项目总是被命名为’etext’.我搜索过,但找不到很多关于它的信息,而不是它可能与Go例程中的调用深度有关.然而,我没有使用任何Go例程,’etext’仍占总执行时间的75%或更多. (pprof) top20 Total: 171 samples 128 74.9%
|
我已经开始介绍一些我的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”来编译. (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 (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 – 命令管道在* NIX中如何工作?
- 内存不足时如何防止Linux冻结?
- c – 使用AMD FX 4100四核在linux ubuntu 12.10上获得CPU温
- 15 Linux Split and Join Command Examples to Manage Larg
- c – 将现有函数复制到内存缓冲区
- distributed-filesystems – NFS如何在Debian上读缓存?
- Awk:对字符串使用反转匹配然后替换字符
- linux如何修改默认SSH端口(centos6)
- linux – 在大型文件系统上运行fsck的内存不足
- LINUX入门:Redhat 7.2 中文显示及中文输入法设置
