日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

曹大带我学 Go(9)—— 开始积累自己的工具库

發布時間:2024/4/11 编程问答 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 曹大带我学 Go(9)—— 开始积累自己的工具库 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

你好,我是小X。

曹大最近開 Go 課程了,小X 正在和曹大學 Go。

這個系列會講一些從課程中學到的讓人醍醐灌頂的東西,撥云見日,帶你重新認識 Go。

不知道你有沒有這樣的經驗:看了很多計算機相關的書,覺得自己懂得很多,但是一遇到實際問題,就不會解。

再看身邊的老司機,執行幾行命令,看了幾個指標,就準確地定位問題了。他可能也沒看那么多理論,但實戰能力確實強,心里一下子就失衡了。

這其中有很多原因,我認為其中有一個比較重要的就是:工具的使用。老司機因為經驗多,積累了很多 命令、shell 腳本、代碼庫……這些東西就像瑞士軍刀,關鍵時刻,直接就可以派上大用場。在線上出問題的時候,云淡風輕地說,這行代碼有問題,刪掉就可以了。瀟灑至極!

今天我就把我最近積累的一些工具,包括一些軟件、命令,這些是可以直接用于實戰的。希望看完之后,能提升你的戰斗力。

效率工具

今天推薦 2 個我日常用得比較多的,提升效率的軟件:aText、paste。

aText

aText 是一個輸入映射的軟件,輸入預先設定的字符串,就可以轉成設定好的目標字符串。我用 aText 存了很多有用的映射,例如,我把打開博客文章的命令縮寫成了 XPosts:

因為博客文件所在的路徑比較長,如果我每次都直接敲出完整路徑的話,會很麻煩。有了這個映射后,只用輸入 XPosts 就自動變成了我要的文件路徑。

還有很多場景可以使用 aText,尤其是你經常要輸入的相同的內容,非常方便。

paste

paste 管理剪貼版的歷史,只要是你復制過的內容,它都會保存下來,甚至可以對文本內容進行搜索。

比如可以把開發、排查問題時常用的鏈接、命令都放到一個 tab 下面,要用的時候,直接快捷鍵調出,怎一個優雅了得。


命令

這部分挑了一些非常有用的命令出來,大家可以記在筆記里,關鍵時候直接拿出來用。

查看 cache size

看 Go 源碼的時候,經常能看到一些 pad 字段,這個字段主要是用來防止 false sharing,一般是根據 cache line size 來算 pad 大小的。那么查看這個 size 的大小呢?

getconf?LEVEL1_DCACHE_LINESIZE

查看內核版本

有時候會遇到一些和內核版本相關的問題,例如 Go 語言里面的內存歸還策略在 Go 1.12 有一個改動,將 MADV_DONTNEED 改成了 MADV_FREE,導致線上應?的 RSS ?幅上升。

使用 MADV_FREE 方式,程序內存不會立刻回收,即 RSS 值不會立刻下降,只有當 OS 內存緊缺時才會回收 Go 程序的內存;

而 Go 1.11 以及之前的版本默認采用的是 MADV_DONTNEED 方式,程序 RSS 值下降很快。

因此如果需要使程序內存占用下降很慢的話,可設置環境變量 GODEBUG=madvdontneed=1。

另外,MADV_FREE 只在 Linux 4.5 及之后的版本才有,所以當你遇到 RSS 一直降不下去的場景時,要想確認是不是這個問題導致的,還得看你的內核版本是啥。那就用這個命令:

uname?-a

這個歸還內存的策略在 Go 1.16 又改回去了。因此只有在 Go 1.12-Go 1.15 之間,且是 Linux 4.5 及之后的內核版本才會有這個問題。

輸出代碼行號

有時候需要用 cat 命令輸出一段代碼,截圖發給別人。這時如果需要對著代碼行號做一些說明的話,把代碼行號一并輸出來是非常 nice 的,只需要用這個命令:

cat?-n?a.go

匯總展示代碼構成

當我們想看一個開源項目的代碼行數的時候,并且能看到各種類型的語言各占多少的時候,怎么辦呢?一個命令搞定:

tokei?./

就問你強不強!

這個用在什么場景呢?太多了,例如你準備看一個稍微簡單一點的框架,有幾個侯選的:chi, echo, gin……執行一下命令,看看代碼行數,選擇一個最少的。

后記

工具是很重要的,積累了很多前人的智慧,我們拿來直接用,不需要自己再從零開始。當然,適當地學習原理也是必須的。

我們要記住這些命令,存入自己的工具庫,要用的時候直接調出來。它們可以節省我們大腦的內存,把寶貴的資源用在思考真正的問題上,而不是記住這些命令。

而且當我們有了自己的代碼碼、腳本庫、工具庫的時候,遇到問題,拿上相應的家伙上場,馬上就可以得到很多相關的信息,我們再根據這些信息做決策。

今天就先列這些吧,其實還準備了好幾個關于 Go 的,先不放出來。如果這篇比較受歡迎,就下期再寫了。

最后,也歡迎在留言區分享你的工具,無論是軟件,還是一行命令。我會匯總后再分享給大家,切實有效地提升大家的能力。

好了,這就是今天全部的內容了~ 我是小X,我們下期再見~


歡迎關注曹大的 TechPaper 以及碼農桃花源~

總結

以上是生活随笔為你收集整理的曹大带我学 Go(9)—— 开始积累自己的工具库的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。