歡迎光臨
每天分享高質量文章

一周 Go World 新鮮事-2019W07

01

Go strings.Replace 與 bytes.Replace 調優 

標準庫中函式大多數情況下更通用,性能並非最好的,還是不能過於迷信標準庫,最近又有了新發現,strings.Replace 這個函式自身的效率已經很好了,但是在特定情況下效率並不是最好的,分享一下我如何優化的吧。我的服務中有部分代碼使用 strings.Replace 把一個固定的字串刪除或者替換成另一個字串,它們有幾個特點:

舊的字串大於或等於新字串 (len(old) >= len(new)

源字串的生命周期很短,替換後就不再使用替換前的字串

它們都比較大,往往超過 2k~4k

本博文中使用函式均在 go-extend 中,優化後的函式在 exbytes.Replace 中。

 

原文鏈接:

https://blog.thinkeridea.com/201902/go/replcae_you_hua.html

原文二維碼:

02

指令集架構、機器碼與 Go 語言

 

Go 語言編譯的最後一個階段就是根據 SSA 中間代碼生成機器碼了,這裡談的機器碼生成就是在標的 CPU 架構上能夠運行的代碼,中間代碼生成 一節簡單介紹的從抽象語法樹到 SSA 中間代碼的處理過程,處理 SSA 的將近 50 個步驟中有一些過程嚴格上來說其實是屬於機器碼生成階段的。在將 SSA 中間代碼降級(lower)的過程中,編譯器將一些值重寫成了標的 CPU 架構的特定值,降級的過程處理了所有機器特定的重寫規則並且對代碼進行了一定程度的優化;在 SSA 中間代碼生成階段的最後,Go 函式體的代碼會被轉換成一系列的 obj.Prog 結構體。

原文鏈接:

https://draveness.me/golang-machinecode

原文二維碼:

 

03

Go 語言編譯過程概述

 

Golang 是一門需要編譯才能運行的編程語言,也就說代碼在運行之前需要通過編譯器生成二進制機器碼,隨後二進制檔案才能在標的機器上運行,如果我們想要瞭解 Go 語言的實現原理,理解它的編譯過程就是一個沒有辦法繞過的事情。這一節會先對 Go 語言編譯的過程進行概述,從頂層介紹編譯器執行的幾個步驟,隨後的章節會分別剖析各個步驟完成的工作和實現原理,同時也會對一些需要預先掌握的知識進行介紹和準備,確保後面的章節能夠被更好的理解。

原文鏈接:

https://draveness.me/golang-compile-intro

原文二維碼:

04

Go語言實時GC – 三色標記演算法

 

Go語言能夠支持實時的,高併發的訊息系統,在高達百萬級別的訊息系統中能夠將延遲降低到100ms以下,很大一部分需要歸功於Go高效的垃圾回收系統。

對於實時系統而言,垃圾回收系統可能是一個極大的隱患,因為在垃圾回收的時候需要將整個應用程式暫停。所以在我們設計訊息總線系統的時候,需要小心地選擇我們的語言。Go一直在強調它的低延遲,但是它真的做到了嗎?如果是的,它是怎麼做到的呢?

在這篇文章當中,我們將會看到Go語言的GC是如何實現的(tricolor algorithm,三色演算法),以及為什麼這種方法能夠達到如此之低的GC暫停,以及最重要的是,它是否真的有效(對這些GC暫停進行benchmar測試,以及同其它型別的語言進行比較)。

 

原文鏈接:

https://juejin.im/post/5c62d45ee51d457fa44f4404

原文二維碼:

 

05

實現真正優雅的容器應用

 

行程的優雅退出(Gracefully Exiting) 看似是個不足為奇的小事,一般情況下只要捕獲 SIGTERM 等退出信號,執行完必要的工作再退出行程就好了,但是放到容器環境里,會有些意想不到的問題。

本文簡單探討在容器內實現優雅退出會碰到的一系列連環坑。首先宣告一點,這裡說的優雅可不是什麼 elegant,作為一個小碼農,不敢妄自評判什麼是優雅,翻譯成平穩可能更合適,但我們還是使用慣常翻譯。

原文鏈接:

https://mp.weixin.qq.com/s/D924A0s7_thq8gOXB85e7A

原文二維碼:

職位推薦:

【上海】積夢智慧科技招聘Go工程師 

 

來積夢智慧

 Gopher China 創始人共事

接受其親自指導

大牛雲集的辦公環境

花錢也買不到的專業培訓

 

長按圖片識別二維碼瞭解招聘詳情

 

Gopher China 2019 最新資訊

重磅!會前一天培訓講師揭曉:Dave&William;

探探Gopher China 2019大會全面啟動

 

Gopher China 2019 大會火熱售票中~~

 

戳下方“ 閱讀原文 ”即可報名

    閱讀原文

    赞(0)

    分享創造快樂