亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Golang > 正文

Go語言運(yùn)行時(shí)環(huán)境變量快速導(dǎo)覽

2020-04-01 19:11:35
字體:
供稿:網(wǎng)友

原文: http://dave.cheney.net/2015/11/29/a-whirlwind-tour-of-gos-runtime-environment-variables

Go 語言運(yùn)行時(shí)環(huán)境變量快速導(dǎo)覽

介紹:

Go Runtime除了提供:GC, goroutine調(diào)度, 定時(shí)器,network polling等服務(wù)外, 還提供其它一些工具設(shè)施,用于開啟額外的調(diào)試輸出,

或是改變Go Runtime自身的一些行為。這些工具設(shè)施由傳給Go program的一些環(huán)境變量控制, 本文主要講述它們。

GOGC

GOGC 是Go Runtime最早支持的環(huán)境變量,甚至比GOROOT還早,幾乎無人不知。GOGC 用于控制GC的處發(fā)頻率, 其值默認(rèn)為100,

意為直到自上次垃圾回收后heap size已經(jīng)增長了100%時(shí)GC才觸發(fā)運(yùn)行。即是GOGC=100意味著live heap size 每增長一倍,GC觸發(fā)運(yùn)行一次。

如設(shè)定GOGC=200, 則live heap size 自上次垃圾回收后,增長2倍時(shí),GC觸發(fā)運(yùn)行, 總之,其值越大則GC觸發(fā)運(yùn)行頻率越低, 反之則越高,

如果GOGC=off 則關(guān)閉GC.

雖然go 1.5引入了低延遲的GC, 但是GOGC對GC運(yùn)行頻率的影響不變, 仍然是其值大于100,則越大GC運(yùn)行頻率越高,

反之則越低。

GOTRACEBACK

GOTRACEBACK用于控制當(dāng)異常發(fā)生時(shí),系統(tǒng)提供信息的詳細(xì)程度, 在go 1.5, GOTRACEBACK有4個(gè)值。

GOTRACEBACK=0 只輸出panic異常信息。

GOTRACEBACK=1 此為go的默認(rèn)設(shè)置值, 輸出所有g(shù)oroutine的stack traces, 除去與go runtime相關(guān)的stack frames.

GOTRACEBACK=2 在GOTRACEBACK=1的基礎(chǔ)上, 還輸出與go runtime相關(guān)的stack frames,從而了解哪些goroutines是由go runtime啟動(dòng)運(yùn)行的。

GOTRACEBACK=crash, 在GOTRACEBACK=2的基礎(chǔ)上,go runtime處發(fā)進(jìn)程segfault錯(cuò)誤,從而生成core dump, 當(dāng)然要操作系統(tǒng)允許的情況下, 而不是調(diào)用os.Exit。

以下為GOTRACEBACK的代碼測試?yán)?/p>

package main

func main() {

panic("kerboom")

}

運(yùn)行結(jié)果:

$ env GOTRACEBACK=0 ./crash

panic: kerboom

$ echo $?

2

讀者有興趣可以嘗試其它值, 看看效果。

GOTRACEBACK 在go 1.6中的變化

GOTRACEBACK=none 只輸出panic異常信息。

GOTRACEBACK=single 只輸出被認(rèn)為引發(fā)panic異常的那個(gè)goroutine的相關(guān)信息。

GOTRACEBACK=all 輸出所有g(shù)oroutines的相關(guān)信息,除去與go runtime相關(guān)的stack frames.

GOTRACEBACK=system 輸出所有g(shù)oroutines的相關(guān)信息,包括與go runtime相關(guān)的stack frames,從而得知哪些goroutine是go runtime啟動(dòng)運(yùn)行的。

GOTRACEBACK=crash 與go 1.5相同, 未變化。

為了與go 1.5兼容,0 對應(yīng) none, 1 對應(yīng) all, 以及 2 對應(yīng) system.

注意: 在go 1.6中, 默認(rèn),只輸出引發(fā)panci異常的goroutine的stack trace.

GOMAXPROCS

GOMAXPROCS 大家比較熟悉, 用于控制操作系統(tǒng)的線程數(shù)量, 這些線程用于運(yùn)行g(shù)o程序中的goroutines.

到go 1.5的時(shí)候, GOMAXPROCS的默認(rèn)值就是我們的go程序啟動(dòng)時(shí)可見的操作系統(tǒng)認(rèn)為的CPU個(gè)數(shù)。

注意: 在我們的go程序中使用的操作系統(tǒng)線程數(shù)量,也包括:正服務(wù)于cgo calls的線程, 阻塞于操作系統(tǒng)calls的線程,

所以go 程序中使用的操作系統(tǒng)線程數(shù)量可能大于GOMAXPROCS的值。

GODEBUG

老鼠拉鐵鍬,大頭在后邊, 本文其余篇幅主要講講GODEBUG. GODEBUG的值被解釋為一個(gè)個(gè)的

name=value對, 每一對間由逗號(hào)分割,每一對用于控制go runtime 調(diào)試工具設(shè)施, 例如:

$ env GODEBUG=gctrace=1,schedtrace=1000 godoc -http=:8080

上面這條命令用于運(yùn)行g(shù)odoc程序時(shí)開啟 GC tracing and schedule tracing.

下面開始介紹幾個(gè)比較有用的調(diào)試工具設(shè)施

gctrace

這個(gè)工具我認(rèn)為最有用處了,請看程序輸出便知

$ env GODEBUG=gctrace=1 godoc -http=:8080 -index

gc #1 @0.042s 4%: 0.051+1.1+0.026+16+0.43 ms clock, 0.10+1.1+0+2.0/6.7/0+0.86 ms cpu, 4->32->10 MB, 4 MB goal, 4 P

gc #2 @0.062s 5%: 0.044+1.0+0.017+2.3+0.23 ms clock, 0.044+1.0+0+0.46/2.0/0+0.23 ms cpu, 4->12->3 MB, 8 MB goal, 4 P

gc #3 @0.067s 6%: 0.041+1.1+0.078+4.0+0.31 ms clock, 0.082+1.1+0+0/2.8/0+0.62 ms cpu, 4->6->4 MB, 8 MB goal, 4 P

gc #4 @0.073s 7%: 0.044+1.3+0.018+3.1+0.27 ms clock, 0.089+1.3+0+0/2.9/0+0.54 ms cpu, 4->7->4 MB, 6 MB goal, 4 P

此信息的輸出格式隨著go的每一不同的版本發(fā)生變化,但總是能發(fā)現(xiàn)共性的東西, 如: 每一GC 階段所花費(fèi)的時(shí)間量, heap size 的變化量,

也包括每一GC階段完成時(shí)間,相對于程序啟動(dòng)時(shí)的時(shí)間,當(dāng)然老版本go可能省略一些信息。

每一行信息都很有用, 不過我認(rèn)為綜合分析這些信息則更有用,比如, 不斷輸出的gc tracing,可以清楚在表明程序的內(nèi)存分配情況,

持續(xù)不斷增長的heap size 則表明可能有內(nèi)存泄露,也許一些被引用的東西沒有被釋放。

開啟gctrace的代價(jià)是很小的,不過其通常是關(guān)閉的, 不過我推薦在一些產(chǎn)品環(huán)境中,抽取一些

樣本產(chǎn)品,開啟這個(gè)調(diào)試工具。

原文未翻譯,未找到準(zhǔn)確表述。

note:setting gctrace to values larger than 1 causes each garbage collection cycle to be run twice.

This exercises some aspects of finalisation that require two garbage collection cycles to complete.

You should not use this as a mechanism to alter finalisation performance in your programs because you should not write programs who’s correctness depends on finalisation.

The heap scavenger

到目前為止,gctrace給出的最有用的信息就是 the heap scavenger的輸出.

scvg143: inuse: 8, idle: 104, sys: 113, released: 104, consumed: 8 (MB)

scavenger 的工作就是周期性地打掃h(yuǎn)eap中無用的操作系統(tǒng)內(nèi)存分頁, 它會(huì)向操作系統(tǒng)發(fā)出建義,請操作系統(tǒng)回收無用內(nèi)存頁,

當(dāng)然并不能強(qiáng)迫操作系統(tǒng)立刻就去做回收處理,操作系統(tǒng)可以忽略此建義,或是延遲回收,比如直到可分配的空閑內(nèi)存不夠的時(shí)候。

scavenger輸出的信息是我們了解go程序虛擬內(nèi)存空間使用情況的最好方式, 當(dāng)然你也可以通過其它工具,如free, top來獲到這些信息,

不過你應(yīng)用信任scavenger.

schedtrace

因?yàn)間o runtime管理著大量的goroutine, 并調(diào)度goroutine在操作系統(tǒng)線程集上運(yùn)行,

這個(gè)操作系統(tǒng)線程集,其實(shí)是就是線程池, 所以從外部考察go程序的性能我們不能獲取足夠的細(xì)節(jié)信息,

更談不上準(zhǔn)確分析程序性能。故此我們需要直接了解go runtime scheduler的每一個(gè)操作,其輸出如下:

$ env GODEBUG=schedtrace=1000 godoc -http=:8080 -index

SCHED 0ms: gomaxprocs=4 idleprocs=2 threads=4 spinningthreads=1 idlethreads=0 runqueue=0 [0 0 0 0]

SCHED 1001ms: gomaxprocs=4 idleprocs=0 threads=8 spinningthreads=0 idlethreads=2 runqueue=0 [189 197 231 142]

SCHED 2004ms: gomaxprocs=4 idleprocs=0 threads=9 spinningthreads=0 idlethreads=1 runqueue=0 [54 45 38 86]

SCHED 3011ms: gomaxprocs=4 idleprocs=0 threads=9 spinningthreads=0 idlethreads=2 runqueue=2 [85 0 67 111]

SCHED 4018ms: gomaxprocs=4 idleprocs=3 threads=9 spinningthreads=0 idlethreads=4 runqueue=0 [0 0 0 0]

詳細(xì)討論請看 Dmitry Vyukov’s excellent blog post from the Intel DeveloperZone.

設(shè)定scheddetail=1將使go runtime輸出總結(jié)性信息時(shí), 一并輸出每一個(gè)goroutine的狀態(tài)信息,如:

$ env GODEBUG=scheddetail=1,schedtrace=1000 godoc -http=:8080 -index

SCHED 0ms: gomaxprocs=4 idleprocs=3 threads=3 spinningthreads=0 idlethreads=0 runqueue=0 gcwaiting=0 nmidlelocked=0 stopwait=0 sysmonwait=0

P0: status=1 schedtick=0 syscalltick=0 m=0 runqsize=0 gfreecnt=0

P1: status=0 schedtick=0 syscalltick=0 m=-1 runqsize=0 gfreecnt=0

P2: status=0 schedtick=0 syscalltick=0 m=-1 runqsize=0 gfreecnt=0

P3: status=0 schedtick=0 syscalltick=0 m=-1 runqsize=0 gfreecnt=0

M2: p=-1 curg=-1 mallocing=0 throwing=0 preemptoff= locks=1 dying=0 helpgc=0 spinning=false blocked=false lockedg=-1

M1: p=-1 curg=17 mallocing=0 throwing=0 preemptoff= locks=0 dying=0 helpgc=0 spinning=false blocked=false lockedg=17

M0: p=0 curg=1 mallocing=0 throwing=0 preemptoff= locks=2 dying=0 helpgc=0 spinning=false blocked=false lockedg=1

G1: status=2(stack growth) m=0 lockedm=0

G17: status=3() m=1 lockedm=1

G2: status=1() m=-1 lockedm=-1

這個(gè)輸出對于調(diào)試goroutines leaking很有幫助, 不過其它工具, 諸如:net/http/pprof

好像更有用一些。

深入閱讀請看godoc for the runtime package.

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
精品久久在线| 欧美午夜a级限制福利片| 91精品国产综合久久久蜜臀图片| 欧美性视频一区二区三区| 国产精品成人a在线观看| 新婚的少妇hd中文字幕| 精品国产免费一区二区三区四区| 国产亚洲欧美在线视频| 久久精品国产精品青草| 精品久久久久久| 欧美日韩国产精品一卡| 色偷偷网站视频| 性折磨bdsm欧美激情另类| 日本在线观看天堂男亚洲| www红色一片_亚洲成a人片在线观看_| 精品夜夜澡人妻无码av| 最新天堂资源在线| 久久久久久国产精品免费无遮挡| 9色porny| 校园春色综合网| 国产丝袜精品第一页| 亚洲视频久久| 在线观看中文字幕的网站| 国产日韩亚洲欧美精品| 美国黄色片视频| 亚洲欧洲99久久| 美国十次综合久久| 日韩av色在线| 亚洲黄色免费看| 亚洲综合视频| 亚洲国产成人影院播放| 久久综合国产精品台湾中文娱乐网| 久久精品女人毛片国产| 蜜桃av噜噜一区二区三区麻豆| 中文字幕制服丝袜成人av| 爱高潮www亚洲精品| 欧美一区影院| 日本视频在线免费观看| 91.com在线观看| 老司机午夜精品99久久| 国产欧美日本一区视频| 欧美成人三级伦在线观看| 老鸭窝亚洲一区二区三区| 青青草原亚洲| 欧美成人日本| 非洲一级黄色片| 亚洲永久精品一区| 国产理论片免费观看| 美国一区二区三区在线播放| 亚洲女同av| 欧美性老头oldtight| 中文字幕一区二区三区久久网站| 中文字幕第315页| 国产黄色免费大片| 亚洲清纯自拍| 成人久久一区二区| 日本天堂网在线| 人人爽人人av| 好吊日视频在线观看| 成人c视频免费高清在线观看| 成人欧美一区二区三区| 农村少妇久久久久久久| 国产精品无码午夜福利| 国新精品乱码一区二区三区18| 麻豆91小视频| 成人激情在线| 日韩高清在线| 亚洲综合第一区| 中文字幕一区二区三区精华液| 中文欧美在线视频| 18成人免费观看视频漫画| av资源种子在线观看| 黄色三级视频在线观看| av电影免费| 99久久精品费精品国产一区二区| 国产一级二级av| 视频一区二区三区在线看免费看| 91蝌蚪|人| 91精品免费视频| 天天操天天综合网| 亚洲成人精品在线观看| 国产黄片一区二区三区| 三上悠亚在线免费观看| 夜夜躁日日躁狠狠久久av| 日韩欧美伦理| 国产精品高潮呻吟AV无码| 国产人妻精品一区二区三区不卡| 国产欧美一区二区在线| 天天综合成人网| 日韩欧美精品一区二区三区| 亚洲精品视频播放| 中文字幕日韩欧美在线视频| 欧美主播一区二区三区| 亚洲国产一区二区久久久777| 国产精品专区一| 亚洲欧美国产精品久久久久久久| 亚洲成人av观看| 青青操视频在线播放| 欧美男男gaytwinkfreevideos| 丰满的少妇愉情hd高清果冻传媒| 丰满少妇在线观看| 国产精品人人爱一区二区白浆| 精品久久对白| 国产一区二区三区丝袜| 亚洲黄色毛片| 中文在线综合| 欧洲精品毛片网站| 国产一区二区三区免费播放| 一区二区三区网址| 国产亚洲aⅴaaaaaa毛片| 在线视频不卡一区二区| 亚洲一区二区三区日本久久九| 亚洲精品在线视频免费| 日韩一级片免费观看| 成人av网站在线播放| 日韩成人精品一区二区三区| 国产123在线| 国产成人一区二区三区别| 黄色三级高清在线播放| 日韩欧美亚洲另类制服综合在线| 日本一级淫片色费放| 亚洲一区中文字幕永久在线| 久久久天堂国产精品| 久久人妻少妇嫩草av无码专区| 久久久久久久久久一区| www.黄色网址| 在线播放色视频| 337p日本欧洲亚洲大胆色噜噜| h视频在线免费看| 国产美女自慰在线观看| 少妇荡乳情欲办公室456视频| 欧美日韩在线一二三| 性欧美暴力猛交69hd| 嫩草影院在线观看未满十八| 成人在线观看免费完整| 国产精品视频yy9299一区| 石原莉奈一区二区三区在线观看| 欧美欧美在线| 成人做爰69片免网站| 国产精品视频网址| 国产欧美精品区一区二区三区| 超碰成人在线免费| 国产精品乱人伦一区二区| 亚洲手机成人高清视频| 亚洲乱码中文字幕综合| 51ⅴ精品国产91久久久久久| 色窝窝无码一区二区三区成人网站| 干日本少妇视频| v片在线观看| 欧美日韩成人影院| 欧美日韩大尺度| 日韩一区二区中文| 欧美丰满少妇xxxbbb| 一区二区三区精品视频| 性欧美1819sex性高清大胸| 18禁男女爽爽爽午夜网站免费| 日韩专区在线视频| 欧美一级精品片在线看| 久久精品国产一区二区三区不卡| 视频二区在线| 男人天堂网站在线| 免费av在线播放| 亚洲五码中文字幕| 午夜精品短视频| 久久久九九九九| 亚洲高清黄色| 日韩精品久久久久久久的张开腿让| 精品国偷自产在线视频99| 激情福利在线| 91原色影院| 日韩在线无毛| 日韩在线免费观看av| 欧美日韩美女| 精品视频二区三区| 亚洲一级理论片| 欧美视频一区二区三区在线观看| 三级视频网站在线观看| 中文字幕日韩一区二区三区不卡| 亚洲女优在线| 亚洲综合大片69999| 91精品在线国产| 国产伦精品一区二区三区视频免费| 天天色av.com| 亚洲国产精品日韩| 色婷婷综合视频在线观看| 羞羞的视频免费| 欧美综合国产精品久久丁香| 日产精品久久久久久久| 情趣网站视频在线观看| 三级影片在线看| 在线无限看免费粉色视频| 欧美性猛交乱大交| 欧美激情手机在线视频| 久久综合九色欧美综合狠狠| 性欧美69式xxxxx| www.日韩欧美| 欧美在线视频观看免费网站| 欧美日韩国产探花| √天堂中文www官网| 美女福利网站视频在线观看| 亚洲国产精品久久久久爰色欲| 国产亚洲欧美精品久久久www| japanesexxxx在线播放| 欧美黑人极品猛少妇色xxxxx| 欧美大电影免费观看| 欧美日韩一区二区三区四区不卡| 久久夜色精品国产亚洲aⅴ| 美女av免费在线观看| 5278欧美一区二区三区| 国产欧美亚洲一区| 最新天堂在线视频| 免费在线色视频| 欧美另类极品videosbestfree| 成人性生交大片免费看视频在线| 俄罗斯女人裸体性做爰| 精品高清一区二区三区| 宅男噜噜99国产精品观看免费| 欧美激情一区二区视频| 美女国内精品自产拍在线播放| 日韩欧美高清一区二区三区| 少妇人妻偷人精品一区二区| 另类专区欧美蜜桃臀第一页| 三上悠亚在线观看视频| 免费看黄色a级片| 亚洲国产欧美日韩精品| 日韩精品免费一区二区在线观看| 午夜精品久久久久久久无码| 另类小说视频一区二区| 妺妺窝人体色www看人体| 亚洲电影在线一区二区三区| 日韩啪啪电影网| 精品亚洲视频在线| 久久久久久久久久久妇女| 色婷婷综合久久久久| 超碰97在线人人| 红桃视频在线观看一区二区| 亚洲欧美另类综合偷拍| 欧美视频一区二区| 中文字幕v亚洲ⅴv天堂| 97人人澡人人爽91综合色| 日韩精品在线播放| 丁香五月网久久综合| 精品人妻一区二区三区免费| 久久久国产精品麻豆| 欧美视频国产精品| 夫妻av一区二区| 亚洲在线中文字幕| 亚洲成人在线网| 黄色片网站在线| 在线播放黄网| 丰满少妇一级片| 成人国产精品免费观看动漫| 日本视频一区二区在线观看| 欧美精品中文| 男人晚上看的视频| 日本一级黄色录像| 精品午夜久久福利影院| 一区二区精彩视频| 欧美老女人在线视频| 日批视频在线播放| 亚洲日本成人女熟在线观看| 日韩精品在线视频美女| 欧美色精品天天在线观看视频| eeuss影院www在线播放| 中文字幕国产精品久久| 国产精品黄色片| 成人免费在线看片| 日韩欧美成人网| 在线国产日本| 日本熟妇人妻中出| 久久精品欧美日韩精品| 香蕉视频免费在线| 国产一级黄色电影| 国产精品99导航| hs网站在线观看| 丰满熟妇人妻中文字幕| 亚洲精选中文字幕| 高清成人在线| 免费观看特级毛片| 国内精品在线一区| 成av人片一区二区| 精品国产aⅴ| 香蕉成人影院| 国产伦精品一区二区三区精品| 欧美日韩水蜜桃| 国产成人亚洲精品狼色在线| 欧美人与性动交α欧美精品图片| 污污视频免费看| 一区二区三区四区在线看| 欧美丰满日韩| 国产一区二区精品久久99| 久久精品国产精品亚洲精品| 日韩在线观看一区| 97久久综合区小说区图片区| 91日韩在线视频| 色猫视频免费观看| 国产日产欧美a一级在线| 三级欧美韩日大片在线看| 91久久精品国产91性色69| 欧美成人精品h版在线观看| 国内成人精品| 亚洲天堂电影| 在线观看免费播放网址成人| 99精品视频在线播放免费| 欧美高清电影在线| 三级欧美日韩| 欧美二区在线播放| 在线欧美小视频| av文字幕在线观看| 91久久偷偷做嫩草影院| 91精品xxx在线观看| 亚洲视频免费在线| 91国模少妇一区二区三区| 官网99热精品| 日本黄色小视频在线观看| 婷婷中文字幕在线观看| 91精产国品一二三产区别沈先生| 亚洲 日韩 国产第一区| 亚洲成人三级| 国内福利视频| 日本免费一区二区视频| 另类ts人妖一区二区三区| 色一情一区二区三区四区| 久久久久一区二区三区| 国产精品ⅴa在线观看h| 中文字幕第100页| 婷婷亚洲精品| 伊人资源视频在线|