在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Go運(yùn)行時(shí):4年之后

jf_WZTOguxH ? 來源:InfoQ ? 作者:Michael Knyszek ? 2022-11-30 16:21 ? 次閱讀

自 2018 年以來,Go GC,以及更廣泛的 Go 運(yùn)行時(shí),一直在穩(wěn)步改進(jìn)。近日,Go 社區(qū)總結(jié)了 4 年來 Go 運(yùn)行時(shí)的一些重要變化。

這些重要變化主要是:

sync.Pool 是一種 GC 感知的重用內(nèi)存的工具,具有較低的延遲影響,并且能夠比之前更有效地回收內(nèi)存。(Go 1.13)

Go 運(yùn)行時(shí)能夠更主動(dòng)地將不需要的內(nèi)存返回給操作系統(tǒng),減少了內(nèi)存消耗和出現(xiàn)內(nèi)存不足的可能性。這將減少最高 20% 的空閑內(nèi)存消耗。(Go 1.13 和 1.14)

在許多情況下,Go 運(yùn)行時(shí)能夠更容易地?fù)屨?goroutine,最高可減少 90% 的 stop-the-world 延遲。(Go 1.14)

Go 運(yùn)行時(shí)能夠比以前更有效地管理計(jì)時(shí)器,特別是在擁有多核 CPU 的機(jī)器上。(Go 1.14)

在大多數(shù)情況下,現(xiàn)在使用 defer 語(yǔ)句的函數(shù)調(diào)用的開銷與常規(guī)函數(shù)調(diào)用一樣少。點(diǎn)擊這里觀看 Gophercon 2020 的相關(guān)演講。(Go 1.14)

內(nèi)存分配器的慢路徑對(duì) CPU 核心的伸縮性更好,將吞吐量提升了最多 10%,并將尾部延遲降低了最多 30%,特別是在高度并行的程序中。(Go 1.14 和 1.15)

Go 內(nèi)存統(tǒng)計(jì)數(shù)據(jù)現(xiàn)在可以通過更細(xì)粒度、更靈活、更高效的 API(runtime/metrics 包)來訪問。這將獲取運(yùn)行時(shí)統(tǒng)計(jì)信息的延遲減少了兩個(gè)數(shù)量級(jí)(從毫秒到微秒)。(Go 1.16)

Go 調(diào)度器在尋找新任務(wù)時(shí)花費(fèi)的 CPU 時(shí)間減少了 30%。(Go 1.17)

Go 代碼現(xiàn)在在 amd64、arm64 和 ppc64 上遵循基于寄存器的調(diào)用約定,將 CPU 效率提升了最多 15%。(Go 1.17 和 1.18)

Go GC 的內(nèi)部審計(jì)和調(diào)度已經(jīng)進(jìn)行了重新設(shè)計(jì),解決了長(zhǎng)期存在的各種與效率和健壯性相關(guān)的問題。對(duì)于 goroutine 占內(nèi)存使用很大一部分的應(yīng)用程序來說,這顯著降低了應(yīng)用程序的尾部延遲(最高達(dá) 66%)。(Go 1.18)

Go GC 現(xiàn)在在應(yīng)用程序空閑時(shí)會(huì)限制自己的 CPU 使用。這將空閑應(yīng)用程序的 GC 周期的 CPU 使用降低了 75%,從而減少可能導(dǎo)致作業(yè)調(diào)度器混淆的 CPU 峰值。(Go 1.19)

這些變化對(duì)用戶來說大多是看不見的——他們只需要升級(jí) Go,就可以看到他們所熟悉和喜愛的 Go 代碼運(yùn)行得更好了。

一個(gè)新的“旋鈕”Go 1.19 帶來了一個(gè)期待已久的特性,使用這個(gè)特性需要做一些額外的工作,但它具備很大的潛力:Go 運(yùn)行時(shí)的軟內(nèi)存限制。

多年來,Go GC 只有一個(gè)調(diào)優(yōu)參數(shù)——GOGC。GOGC 允許用戶在 CPU 開銷和內(nèi)存開銷之間做出權(quán)衡。多年來,這個(gè)“旋鈕”為 Go 社區(qū)提供了很好的服務(wù),被用在各種各樣的場(chǎng)景中。

Go 運(yùn)行時(shí)團(tuán)隊(duì)一直不愿意在 Go 運(yùn)行時(shí)中添加新的旋鈕,他們的理由很充分——每個(gè)新的旋鈕代表了配置空間中的一個(gè)新的維度,我們需要對(duì)其進(jìn)行測(cè)試和維護(hù),而且可能要永遠(yuǎn)持續(xù)下去。旋鈕的激增也給 Go 開發(fā)人員增加了理解和使用它們的負(fù)擔(dān),隨著旋鈕的增多,情況會(huì)變得愈加困難。因此,Go 運(yùn)行時(shí)總是傾向于用最小配置實(shí)現(xiàn)合理的行為。

那么為什么要添加內(nèi)存限制旋鈕呢?

內(nèi)存不像 CPU 時(shí)間那么具有可互換性。對(duì)于 CPU 時(shí)間,如果稍等片刻,將來總會(huì)得到更多的 CPU 時(shí)間。但對(duì)于內(nèi)存,你所擁有的總是有限的。

內(nèi)存限制解決了兩個(gè)問題。

首先,當(dāng)應(yīng)用程序的內(nèi)存使用峰值不可預(yù)測(cè)時(shí),僅靠 GOGC 幾乎無法防止內(nèi)存被耗盡。如果只使用 GOGC,Go 運(yùn)行時(shí)根本不知道它有多少可用的內(nèi)存。通過設(shè)置內(nèi)存限制,運(yùn)行時(shí)能夠意識(shí)到什么時(shí)候需要更努力地工作以減少內(nèi)存開銷,從而使運(yùn)行時(shí)能夠健壯地應(yīng)對(duì)瞬時(shí)的、可恢復(fù)的負(fù)載峰值。

第二是為了避免不使用內(nèi)存限制時(shí)出現(xiàn)的內(nèi)存不足。我們必須根據(jù)內(nèi)存峰值調(diào)優(yōu) GOGC,而為了保持較低的內(nèi)存開銷會(huì)導(dǎo)致更高的 GC CPU 開銷,即使應(yīng)用程序沒有處于內(nèi)存使用峰值且有足夠的可用內(nèi)存。這在容器化的環(huán)境中尤其重要。在容器化的環(huán)境中,程序被部署在具有獨(dú)立預(yù)留內(nèi)存的容器中。設(shè)置內(nèi)存限制可以為峰值負(fù)載提供保護(hù),并可以針對(duì) CPU 開銷更主動(dòng)地調(diào)優(yōu) GOGC。

內(nèi)存限制的設(shè)計(jì)旨在易用性和健壯性。例如,它是對(duì)應(yīng)用程序中 Go 部分的整個(gè)內(nèi)存占用的限制,而不僅僅是 Go 的堆,因此用戶不需要額外計(jì)算 Go 運(yùn)行時(shí)的開銷。運(yùn)行時(shí)還會(huì)根據(jù)內(nèi)存限制調(diào)整其內(nèi)存清除策略,以便在內(nèi)存出現(xiàn)壓力時(shí)更主動(dòng)地將內(nèi)存返回給操作系統(tǒng)。

雖然內(nèi)存限制是一個(gè)強(qiáng)大的工具,但在使用時(shí)仍然要謹(jǐn)慎。其中一個(gè)需要注意的地方是,它會(huì)讓你的程序陷入 GC 抖動(dòng)狀態(tài)——在這種狀態(tài)下,程序運(yùn)行 GC 的時(shí)間過多,導(dǎo)致沒有足夠的時(shí)間來處理其他任務(wù)。例如,如果內(nèi)存限制設(shè)置得比程序?qū)嶋H需要的內(nèi)存少,Go 程序可能會(huì)崩潰。以前不太可能出現(xiàn) GC 抖動(dòng),除非顯式對(duì) GOGC 進(jìn)行了大量調(diào)優(yōu)。我們選擇讓內(nèi)存耗盡而不是陷入抖動(dòng)狀態(tài),因此作為一種緩解措施,運(yùn)行時(shí)將 GC 限制為總 CPU 時(shí)間的 50%,即使這樣會(huì)超過內(nèi)存限制。

所有這些都需要慎重考慮,因此,作為這項(xiàng)工作的一部分,我們發(fā)布了一個(gè)新的 GC 指南,其中包含了交互式可視化的圖表,以幫助你們理解 GC 成本以及如何操作它們。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    11049

    瀏覽量

    216159
  • 內(nèi)存
    +關(guān)注

    關(guān)注

    8

    文章

    3111

    瀏覽量

    75032
  • Go
    Go
    +關(guān)注

    關(guān)注

    0

    文章

    45

    瀏覽量

    12358

原文標(biāo)題:Go 運(yùn)行時(shí):4 年之后

文章出處:【微信號(hào):AI前線,微信公眾號(hào):AI前線】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    步進(jìn)電機(jī)在高速運(yùn)行時(shí)反電動(dòng)勢(shì)波形與其動(dòng)態(tài)響應(yīng)變化

    步進(jìn)電機(jī)高速運(yùn)行時(shí),反電動(dòng)勢(shì)幅值增大、頻率升高,導(dǎo)致電流建立延遲、扭矩下降及動(dòng)態(tài)響應(yīng)滯后。所以在步進(jìn)電機(jī)高速運(yùn)行的方案中,我們需要通過優(yōu)化電機(jī)選型(如低電感、適中極數(shù))、升壓驅(qū)動(dòng)及BEMF反饋控制,可緩解高速性能衰減,避免PWM飽和導(dǎo)致的扭矩崩潰。
    的頭像 發(fā)表于 06-10 16:06 ?125次閱讀
    步進(jìn)電機(jī)在高速<b class='flag-5'>運(yùn)行時(shí)</b>反電動(dòng)勢(shì)波形與其動(dòng)態(tài)響應(yīng)變化

    可以在運(yùn)行時(shí)通過微控制器配置CCG2 C型板嗎?

    我可以在運(yùn)行時(shí)通過微控制器配置 CCG2 C 型板嗎?
    發(fā)表于 05-07 07:24

    在Windows上安裝OpenVINO?運(yùn)行時(shí)遇到錯(cuò)誤怎么解決?

    已在 Windows* 上安裝OpenVINO?運(yùn)行時(shí)。 配置環(huán)境變量。 遇到錯(cuò)誤: Location is not available.
    發(fā)表于 03-05 09:13

    無法在ONNX運(yùn)行時(shí)加載OpenVINO?中間表示 (IR),為什么?

    無法在 ONNX運(yùn)行時(shí)加載OpenVINO?中間表示 (IR)
    發(fā)表于 03-05 09:07

    運(yùn)行時(shí)OpenVINO?找不到模型優(yōu)化器,為什么?

    運(yùn)行時(shí)OpenVINO?找不到模型優(yōu)化器,運(yùn)行模型下載程序命令并收到錯(cuò)誤消息: omz_downloader:找不到命令
    發(fā)表于 03-05 08:16

    無法在Raspberry Pi 4中通過PyPI OpenVINO?安裝2022年運(yùn)行時(shí)軟件包,為什么?

    無法在 Raspberry* Pi 4 中通過 PyPI* 安裝OpenVINO? 2022 運(yùn)行時(shí)軟件包。
    發(fā)表于 03-05 07:31

    智能電機(jī)控制裝置如何最大限度地提高恢復(fù)能力和正常運(yùn)行時(shí)

    機(jī)器恢復(fù)能力和正常運(yùn)行時(shí)間的智能電機(jī)控制裝置。 這些應(yīng)用中的電機(jī)控制裝置必須能夠控制并保護(hù) 75 馬力 (HP) 至 700 馬力的電機(jī)。為實(shí)現(xiàn)彈性運(yùn)行,需要對(duì)機(jī)器進(jìn)行全方位的保護(hù),包括過載保護(hù)、接地故障保護(hù)和相位不平衡保護(hù)等。 同時(shí)還應(yīng)包括觸點(diǎn)磨損自診斷和線圈過
    的頭像 發(fā)表于 01-25 16:40 ?664次閱讀
    智能電機(jī)控制裝置如何最大限度地提高恢復(fù)能力和正常<b class='flag-5'>運(yùn)行時(shí)</b>間

    Bun 1.2震撼發(fā)布:全力挑戰(zhàn)Node.js生態(tài)的JavaScript運(yùn)行時(shí)新星

    《2024 中國(guó)開源開發(fā)者報(bào)告》正式發(fā)布 JavaScript 運(yùn)行時(shí)新秀 Bun 發(fā)布 1.2 版本,這是自去年 4 月發(fā)布 1.1 以來最重要的一次更新。 此次更新不僅大幅提升
    的頭像 發(fā)表于 01-24 10:42 ?661次閱讀
    Bun 1.2震撼發(fā)布:全力挑戰(zhàn)Node.js生態(tài)的JavaScript<b class='flag-5'>運(yùn)行時(shí)</b>新星

    ups主機(jī)選購(gòu)方法,選擇電池運(yùn)行時(shí)間滿足

    時(shí),應(yīng)考慮以下幾個(gè)因素:能力確定要連接到UPS的設(shè)備的電源要求。選擇具有足夠容量的UPS,以在所需的持續(xù)時(shí)間內(nèi)處理負(fù)載。電池運(yùn)行時(shí)間考慮在停電期間需要UPS供電多長(zhǎng)時(shí)間
    的頭像 發(fā)表于 12-06 09:28 ?542次閱讀
    ups主機(jī)選購(gòu)方法,選擇電池<b class='flag-5'>運(yùn)行時(shí)</b>間滿足

    影響逆變器電池狀態(tài)的原因,整體運(yùn)行時(shí)

    逆變器的使用需要了解影響電池性能和整體運(yùn)行時(shí)間的因素。讓我們深入探討最大化電源設(shè)置的關(guān)鍵考慮因素。逆變器效率:逆變器的效率至關(guān)重要。當(dāng)逆變器將電池的DC電能轉(zhuǎn)換為交流
    的頭像 發(fā)表于 10-18 10:41 ?818次閱讀
    影響逆變器電池狀態(tài)的原因,整體<b class='flag-5'>運(yùn)行時(shí)</b>間

    C2000?MCU的運(yùn)行時(shí)堆棧大小監(jiān)測(cè)

    電子發(fā)燒友網(wǎng)站提供《C2000?MCU的運(yùn)行時(shí)堆棧大小監(jiān)測(cè).pdf》資料免費(fèi)下載
    發(fā)表于 09-11 09:30 ?0次下載
    C2000?MCU的<b class='flag-5'>運(yùn)行時(shí)</b>堆棧大小監(jiān)測(cè)

    為什么變壓器空載運(yùn)行時(shí)功率因數(shù)很低

    變壓器空載運(yùn)行時(shí)功率因數(shù)低是一個(gè)常見的電氣工程問題。功率因數(shù)是指在交流電路中,實(shí)際功率與視在功率的比值。在變壓器空載運(yùn)行時(shí),由于沒有負(fù)載,變壓器的輸出功率為零,但仍然存在輸入功率,因此功率因數(shù)會(huì)很低
    的頭像 發(fā)表于 08-26 11:09 ?3652次閱讀

    直線電機(jī)在運(yùn)行時(shí)噪音大不大

    眾所周知,直線電機(jī)采用了簡(jiǎn)化的結(jié)構(gòu)設(shè)計(jì),沒用中間的傳動(dòng)機(jī)構(gòu),能夠減少振動(dòng)和共振,使得運(yùn)行時(shí)的噪音得到了較好地控制。 直線電機(jī)的主要原材料是磁鐵和銅線,由此也能看出,它的工作原理是基于磁懸浮技術(shù),而磁懸浮技術(shù)
    的頭像 發(fā)表于 08-12 11:37 ?723次閱讀
    直線電機(jī)在<b class='flag-5'>運(yùn)行時(shí)</b>噪音大不大

    高頻變運(yùn)行時(shí)二次電壓高是什么原因

    高頻變運(yùn)行時(shí)二次電壓高的原因可能有很多,涉及到電力系統(tǒng)、電力設(shè)備、控制策略等多個(gè)方面。 電力系統(tǒng)運(yùn)行方式的影響 電力系統(tǒng)的運(yùn)行方式對(duì)二次電壓的影響是不可忽視的。在不同的運(yùn)行方式下,電力
    的頭像 發(fā)表于 07-16 17:45 ?1049次閱讀

    三菱plc累計(jì)運(yùn)行時(shí)間怎么編程

    具有重要意義。本文將詳細(xì)介紹如何使用三菱PLC編程實(shí)現(xiàn)累計(jì)運(yùn)行時(shí)間的統(tǒng)計(jì)功能。 一、概述 累計(jì)運(yùn)行時(shí)間是指設(shè)備或系統(tǒng)在一定時(shí)間內(nèi)的總運(yùn)行時(shí)間。在工業(yè)生產(chǎn)中,對(duì)設(shè)備的累計(jì)運(yùn)行時(shí)間進(jìn)行統(tǒng)計(jì)
    的頭像 發(fā)表于 06-20 11:31 ?3426次閱讀
    主站蜘蛛池模板: 三级黄色录像 | 午夜久久久| 日本aaaa级毛片在线看 | 久久国产乱子伦精品免费看 | 美女隐私黄www视频 美女用手扒开尿口给男生桶爽 | 26uuu影院亚洲欧美综合 | 亚洲91| 夜福利视频 | 噜噜噜色网 | 777奇米影音 | 欧美成人一区二区三区在线视频 | freesex性woman欧美 | 十三以下岁女子毛片免费播放 | 天天操天天舔天天射 | jzzjlzz亚洲乱熟在线播放 | www.欧美色图 | 亚洲韩国在线一卡二卡 | 久久婷婷国产一区二区三区 | 在线色片 | 免费网站成人亚洲 | 亚洲一区高清 | 欧美一级看片免费观看视频在线 | 在线观看中文字幕一区 | www.色婷婷 | 办公室桌震娇喘视频大全在线 | 久色乳综合思思在线视频 | 天天草天天操 | 一级特级aaaa毛片免费观看 | 91md天美精东蜜桃传媒在线 | 日本国产在线 | 国产乱辈通伦影片在线播放亚洲 | 欧美极品另类xxx | 国产精品综合色区在线观看 | 中文天堂在线最新2022更新 | 求av网址| 国产一区二区三区乱码 | free性欧美高清另类 | 喷潮白浆直流在线播放 | 午夜一级毛片看看 | 特黄一级真人毛片 | 国产xxxx极品bbw视色 |