使用场景

经常要查看Golang程序的初始化启动过程,即查看各个init函数的运行先后顺序。需要Debug出相关信息。

版本支持

必须大于等于Go 1.16

Go1.16开始提供支持

使用方法

使用GODEBUG环境变量控制go程序在运行时的调试输出。

使用方法是添加运行的环境变量:

1
GODEBUG=inittrace=1

使用例子

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
# GODEBUG=inittrace=1 ./demo
init internal/bytealg @0.014 ms, 0 ms clock, 0 bytes, 0 allocs
init runtime @0.033 ms, 0.015 ms clock, 0 bytes, 0 allocs
init errors @0.24 ms, 0.003 ms clock, 0 bytes, 0 allocs
init sync @0.47 ms, 0.001 ms clock, 16 bytes, 1 allocs
init io @0.66 ms, 0 ms clock, 144 bytes, 9 allocs
init internal/oserror @0.85 ms, 0 ms clock, 80 bytes, 5 allocs
init syscall @1.0 ms, 0.006 ms clock, 624 bytes, 2 allocs
init time @1.2 ms, 0.013 ms clock, 384 bytes, 8 allocs
init path @1.4 ms, 0.003 ms clock, 16 bytes, 1 allocs
init io/fs @1.6 ms, 0 ms clock, 16 bytes, 1 allocs
init context @2.3 ms, 0.002 ms clock, 128 bytes, 4 allocs
init math @2.5 ms, 0 ms clock, 0 bytes, 0 allocs

参考资料

https://tip.golang.org/pkg/runtime/#hdr-Environment_Variables