成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Go 1.1的性能提升

開發(fā) 開發(fā)工具 前端
Go官方文檔報(bào)告說,用Go1.1重新編譯你的代碼就可以獲得30%-40%的性能提升。對(duì)linux/amd64平臺(tái)而言,有大量的評(píng)測可以證明上述性能提升,對(duì)linux/386和linux/arm類平臺(tái),結(jié)果甚至更讓人驚訝。但是我暫時(shí)持保留意見。

注:今天上午在微博推薦了英文原文,感謝@Codefor 的熱心翻譯。如果其他朋友也有不錯(cuò)的原創(chuàng)或譯文,可以嘗試推薦給我們

——————————————————————–

這是Go1.1發(fā)布后性能提升分析系列的第一篇文章。

Go官方文檔(這里這里)報(bào)告說,用Go1.1重新編譯你的代碼就可以獲得30%-40%的性能提升。對(duì)linux/amd64平臺(tái)而言,有大量的評(píng)測可以證明上述性能提升,對(duì)linux/386和linux/arm類平臺(tái),結(jié)果甚至更讓人驚訝。但是我暫時(shí)持保留意見。

關(guān)于gccgo,本系列重點(diǎn)關(guān)注提升Go1.1性能的gc系列編譯器(5g,6g和8g)。由于和gc編譯器共享相同的運(yùn)行時(shí)和標(biāo)準(zhǔn)庫,gccgo間接受益于這些改進(jìn),但不作為本次基準(zhǔn)測試系列的重點(diǎn)。

Go1.1在編譯器,運(yùn)行時(shí)和標(biāo)準(zhǔn)庫上有許多直接導(dǎo)致程序速度提升的特色改進(jìn),尤其是:

  • 代碼生成優(yōu)化。涵蓋3個(gè)gc編譯器,包括更好的寄存器分配,減少不必要的間接加載,減少代碼量
  • 內(nèi)聯(lián)優(yōu)化。包括部分內(nèi)置函數(shù)調(diào)用的內(nèi)聯(lián),處理接口轉(zhuǎn)換時(shí)編譯器生成的存根方法的內(nèi)聯(lián)。
  • 減少棧使用。進(jìn)而減輕棧大小的壓力,更少分裂棧。
  • 引入并行垃圾收集器。收集器仍然是標(biāo)記-刪除,但是垃圾收集期間可以使用所有的CPU。
  • 更精細(xì)的垃圾收集。減少堆的大小,進(jìn)而獲得更低的GC延時(shí)
  • 新的運(yùn)行時(shí)調(diào)度器。在調(diào)度goroutine時(shí)做出更好的決策。
  • 調(diào)度器和net包整合的更緊密。大幅減少包處理的延時(shí)并獲得更高的吞吐。
  • 部分運(yùn)行時(shí)和標(biāo)準(zhǔn)庫用匯編重寫。利用特定的移動(dòng)或密碼指令的優(yōu)勢(shì)。

autobench介紹

沒有事實(shí)依據(jù)的不可復(fù)現(xiàn)的評(píng)測比任何事情都讓我不滿。由于這個(gè)系列要列出大量的數(shù)字,給出一些強(qiáng)有力的結(jié)論,對(duì)我而言,有必要提供一個(gè)渠道,大家可以在自己機(jī)器上驗(yàn)證我的結(jié)果。

為此,我已經(jīng)建立了一個(gè)簡單的基于make的工具,用于比較Go1.0和Go1.1在一系列綜合基準(zhǔn)測試中的性能。它可以運(yùn)行在任何Go支持的任何平臺(tái)上。雖然該項(xiàng)目仍處于開發(fā)階段,它已經(jīng)產(chǎn)生了很多有用的數(shù)據(jù)。這些數(shù)據(jù)存放在代碼庫中。你可以在GitHub找到這個(gè)項(xiàng)目:

https://github.com/davecheney/autobench

我要感謝那些從自己機(jī)器提交基準(zhǔn)測試結(jié)果數(shù)據(jù)的Go社區(qū)的成員,這使得我對(duì)Go1.1的相對(duì)性能做出明智的結(jié)論。

如果你對(duì)參與autobench感興趣,很快將有一個(gè)記錄Go1.1性能的分支產(chǎn)生。

一圖勝千言萬語

為了更好的展示基準(zhǔn)測試結(jié)果,AJ Starks 已經(jīng)開發(fā)了一個(gè)好用的工具。benchviz 可以將misc/benchcmp枯燥的基于文本的輸出轉(zhuǎn)換成漂亮的圖表。你可以在AJ的博客上看到所有關(guān)于benchviz 的信息。

http://mindchunk.blogspot.com.au/2013/05/visualizing-go-benchmarks-with-benchviz.html

在傳統(tǒng)的misc/benchcmp工具之后,對(duì)所有的改進(jìn),當(dāng)運(yùn)行時(shí)間的減少,或者吞吐的增加,以條狀圖的形式向右擴(kuò)展,反之,向左收縮。

Go1 在linux/amd64平臺(tái)基準(zhǔn)測試

這篇文章的剩余部分將會(huì)集中在linux/amd64的性能評(píng)測。6g編譯器被認(rèn)為是gc編譯器包中的旗艦編譯器。除了在前后端的代碼生成優(yōu)化,標(biāo)準(zhǔn)庫和運(yùn)行時(shí)的性能敏感部分已經(jīng)用匯編重寫以充分利用SSE2指令。 這篇文章接下來的數(shù)據(jù)來自此結(jié)果文件 linux-amd64-d5666bad617d-vs-e570c2daeaca.txt

Go1基準(zhǔn)測試包是一個(gè)綜合的基準(zhǔn)測試,它試圖獲取真實(shí)世界中標(biāo)準(zhǔn)庫中的主要包的使用情況??傮w上,這個(gè)結(jié)果支持之前30%-40%性能提升的結(jié)論。通過查看提交到autobench庫中的結(jié)果,很明顯GobDecode和Gzip性能有所退步,并且問題 51655166 都產(chǎn)生了。相對(duì)而言,后者的罪魁禍?zhǔn)讘?yīng)該至少部分歸于遷移到64位int 。

net/http 基準(zhǔn)測試

這一系列的基準(zhǔn)測試是從net/http包中抽出來的,它展示了Brad Fitzpatrick 和Dmitry Vyukov以及許多其他人貢獻(xiàn)到net和net/http包中的工作。

這個(gè)系列的基準(zhǔn)測試中需要指出的是,ReadRequest(用于解包一個(gè)HTTP請(qǐng)求)的性能提升。ClientServerParallel基準(zhǔn)測試目前并不能在所有的amd64平臺(tái)運(yùn)行,因?yàn)椴糠謅md64平臺(tái)還不支持新的和net聚合的運(yùn)行時(shí)。完成剩余的BSD和Windows平臺(tái)的支持是 1.2周期的重點(diǎn)。

#p#

Runtime 微基準(zhǔn)測試

在這里展示的最后一個(gè)基準(zhǔn)測試是從runtime包中抽取的。

Runtime基準(zhǔn)測試展示了runtime包非常低層次部分的微型基準(zhǔn)測試。

上面明顯的衰退就是第一個(gè)Append基準(zhǔn)測試。然而在實(shí)際時(shí)間中,基準(zhǔn)測試卻從36ns/op提升到100ns/op,這意味著,對(duì)于某些append使用場景是存在性能衰退的。這可能已經(jīng)在建議CL 9360043中指出。

Runtime基準(zhǔn)測試中最大的贏家就是驚人的map。新的map代碼由khr在issue 3886聲明并貢獻(xiàn)。包括Channel操作的開銷減少(感謝Dmitry的新調(diào)度器),涉及complex128操作的優(yōu)化,以及用64位匯編重寫的hash和內(nèi)存移動(dòng)操作的提速。

結(jié)論

對(duì)于運(yùn)行現(xiàn)代64位intelCPU的linux/amd64平臺(tái),6g編譯器和運(yùn)行時(shí)可以生成顯著高校的代碼。其他的amd64平臺(tái)也有類似的提升,具體的提升程度會(huì)有變化。如果你有能力,我鼓勵(lì)你審閱autobench代碼庫中的基準(zhǔn)測試數(shù)據(jù),并提交你自己的結(jié)果數(shù)據(jù)。

在接下來的文章中,我會(huì)著重在Go1.1給386和arm平臺(tái)帶來的性能提升。

英文原文:Dave Cheney

譯文鏈接:http://blog.jobbole.com/39728/

責(zé)任編輯:林師授 來源: 伯樂在線
相關(guān)推薦

2023-09-06 12:01:50

HTTP協(xié)議信息

2013-04-01 10:22:21

GoGo 1.1

2009-02-17 14:20:01

JavaFX 1.1腳本語言JavaFX Mobi

2015-01-21 15:40:44

GoRuby

2015-11-16 11:31:35

Kubernetes網(wǎng)絡(luò)性能新版本特性

2013-05-15 09:27:58

2023-11-06 08:01:09

Go同步異步

2023-11-07 11:11:42

Go性能

2013-05-15 09:51:03

GoGo1.1性能測試

2025-04-11 08:02:38

2025-04-14 00:00:00

2013-05-15 09:37:00

GoGo1.1性能測試

2021-12-02 07:02:16

API性能設(shè)計(jì)

2024-11-14 11:29:38

2020-08-17 10:30:35

Web前端自適應(yīng)加載

2011-11-30 21:59:41

ibmdwDojo

2021-08-13 09:06:52

Go高性能優(yōu)化

2014-09-17 11:20:38

AndroidListView技巧

2013-08-21 09:43:45

vSphere

2010-04-07 16:54:55

Oracle性能
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 丁香久久| 国产精品一区二区三区在线 | 国产亚洲久 | 在线观看中文字幕视频 | 一区二区三区精品 | 久久久日韩精品一区二区三区 | 91av视频在线观看 | 日本成人午夜影院 | 成人激情免费视频 | 国产欧美一区二区三区久久 | 亚洲精品在线国产 | 国产精品免费看 | 在线看91 | 欧美一级黄色片在线观看 | 黄色福利 | 精品视频99 | 亚洲国产aⅴ成人精品无吗 亚洲精品久久久一区二区三区 | 精品日韩一区二区 | 国产视频一区二区在线观看 | 欧美视频免费在线 | 成人深夜小视频 | 亚洲一级av毛片 | 蜜桃精品噜噜噜成人av | 久久中文字幕一区 | 午夜欧美一区二区三区在线播放 | 亚洲精品一区二区网址 | 少妇精品久久久久久久久久 | 精品久久久久香蕉网 | 日本xx视频免费观看 | 日韩成人一区二区 | 久久在线看| 福利一区视频 | 亚洲精品乱码久久久久久黑人 | 国产农村妇女精品一区 | 日韩精品 电影一区 亚洲 | 国产激情精品一区二区三区 | 欧美日韩电影一区二区 | av黄色片| 丝袜美腿一区二区三区 | 91xxx在线观看 | 成人高潮片免费视频欧美 |