Go1.14(即將發(fā)布)中的性能改進(jìn)

Go1.14即將于2020年2月底發(fā)布鳞上,這個(gè)版本有一些值得注意的性能改進(jìn),如下:

  • defer

跟正常的函數(shù)調(diào)用相比,defer幾乎已經(jīng)沒有額外的開銷了。你可以在對(duì)性能極度敏感的代碼中放心的使用defer了穷娱。

  • 調(diào)度器

Goroutine支持真正意義上的搶占式調(diào)度了。我們知道在老版本中运沦,goroutine只有當(dāng)遇到I/O操作泵额、管道/同步操作或者用戶主動(dòng)調(diào)用了runtime.Gosched()時(shí)才會(huì)讓出執(zhí)行權(quán),而為了避免一個(gè)goroutine長(zhǎng)期運(yùn)行"餓死"其他goroutine, Go編譯器還會(huì)在調(diào)用另一個(gè)函數(shù)之前埋點(diǎn)携添,即檢測(cè)一下當(dāng)前goroutine是否已經(jīng)長(zhǎng)時(shí)間執(zhí)行以決定是否切換到其他goroutine執(zhí)行嫁盲。這并不是真正意義上的搶占,只是一種模擬烈掠,它有個(gè)明顯的缺點(diǎn)羞秤,就是無法處理長(zhǎng)時(shí)間執(zhí)行且沒有調(diào)用其他函數(shù)的循環(huán)體缸托。在Go1.14版本中,除了windows-arm, darwin-arm, js-wasm, plan9平臺(tái)外都將支持搶占式協(xié)程調(diào)度瘾蛋。

  • 頁(yè)分配器(Page Allocator)

Page Allocator在GOMAXPROCS很大的情況下的鎖競(jìng)爭(zhēng)更少了俐镐。這樣帶來的好處是,并行分配內(nèi)存時(shí)速度更快哺哼、延遲更低佩抹。

  • 內(nèi)置Timer

標(biāo)準(zhǔn)庫(kù)內(nèi)置的定時(shí)器現(xiàn)在更加高效了---- 減少了鎖競(jìng)爭(zhēng)和上下文切換次數(shù)。

個(gè)人感覺意義最大的當(dāng)屬搶占式調(diào)度的引入取董。之前有人在CPU密集型的任務(wù)中經(jīng)常會(huì)遇到其他協(xié)程長(zhǎng)時(shí)間得不到調(diào)度的情況棍苹,當(dāng)然對(duì)于CPU密集任務(wù)來說確實(shí)不應(yīng)該搞太多協(xié)程,沒啥意義茵汰,但是如果是用線程來實(shí)現(xiàn)的話這個(gè)問題是不存在的廊勃。相信1.14版本的發(fā)布可以讓很多人緩解對(duì)協(xié)程調(diào)度不夠“聰明”的擔(dān)憂。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末经窖,一起剝皮案震驚了整個(gè)濱河市坡垫,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌画侣,老刑警劉巖冰悠,帶你破解...
    沈念sama閱讀 211,884評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異配乱,居然都是意外死亡溉卓,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門搬泥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來桑寨,“玉大人,你說我怎么就攤上這事忿檩∥疚玻” “怎么了?”我有些...
    開封第一講書人閱讀 157,435評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵燥透,是天一觀的道長(zhǎng)沙咏。 經(jīng)常有香客問我,道長(zhǎng)班套,這世上最難降的妖魔是什么肢藐? 我笑而不...
    開封第一講書人閱讀 56,509評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮吱韭,結(jié)果婚禮上吆豹,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好痘煤,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,611評(píng)論 6 386
  • 文/花漫 我一把揭開白布鸳吸。 她就那樣靜靜地躺著,像睡著了一般速勇。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上坎拐,一...
    開封第一講書人閱讀 49,837評(píng)論 1 290
  • 那天烦磁,我揣著相機(jī)與錄音,去河邊找鬼哼勇。 笑死都伪,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的积担。 我是一名探鬼主播陨晶,決...
    沈念sama閱讀 38,987評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼帝璧!你這毒婦竟也來了先誉?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,730評(píng)論 0 267
  • 序言:老撾萬榮一對(duì)情侶失蹤的烁,失蹤者是張志新(化名)和其女友劉穎褐耳,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體渴庆,經(jīng)...
    沈念sama閱讀 44,194評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡铃芦,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,525評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了襟雷。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片刃滓。...
    茶點(diǎn)故事閱讀 38,664評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖耸弄,靈堂內(nèi)的尸體忽然破棺而出咧虎,到底是詐尸還是另有隱情,我是刑警寧澤计呈,帶...
    沈念sama閱讀 34,334評(píng)論 4 330
  • 正文 年R本政府宣布老客,位于F島的核電站,受9級(jí)特大地震影響震叮,放射性物質(zhì)發(fā)生泄漏胧砰。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,944評(píng)論 3 313
  • 文/蒙蒙 一苇瓣、第九天 我趴在偏房一處隱蔽的房頂上張望尉间。 院中可真熱鬧,春花似錦、人聲如沸哲嘲。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽眠副。三九已至画切,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間囱怕,已是汗流浹背霍弹。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評(píng)論 1 266
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留娃弓,地道東北人典格。 一個(gè)月前我還...
    沈念sama閱讀 46,389評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像台丛,于是被迫代替她去往敵國(guó)和親耍缴。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,554評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容

  • Goroutine是Go里的一種輕量級(jí)線程——協(xié)程挽霉。相對(duì)線程防嗡,協(xié)程的優(yōu)勢(shì)就在于它非常輕量級(jí),進(jìn)行上下文切換的代價(jià)非...
    witchiman閱讀 4,822評(píng)論 0 9
  • 介紹 上一篇文章我對(duì)操作系統(tǒng)級(jí)別的調(diào)度進(jìn)行了講解侠坎,這對(duì)理解 Go 語言的調(diào)度器是很重要的本鸣。這篇文章,我將解釋下 G...
    達(dá)菲格閱讀 7,994評(píng)論 1 30
  • [toc] 原文:Scheduling In Go : Part II - Go Scheduler 前言 這是本...
    豆腐匠閱讀 1,026評(píng)論 0 8
  • 前言 隨著服務(wù)器硬件迭代升級(jí),配置也越來越高童芹。為充分利用服務(wù)器資源涮瞻,并發(fā)編程也變的越來越重要。在開始之前假褪,需要了解...
    蔡欣圻閱讀 2,115評(píng)論 0 4
  • 十六字令 游龍缸 觀署咽!君住龍缸享盛年。龍騰否生音?洞內(nèi)舞翩躚宁否。 注:重慶龍缸景區(qū)有龍洞一景,與湖北利川騰龍洞有...
    姚爭(zhēng)杰閱讀 384評(píng)論 3 5