原创 【Go】高效截取字符串的一些思考

原文鏈接:https://blog.thinkeridea.com/... 最近我在 Go Forum 中發現了 String size of 20 character 的問題,“hollowaykeanho” 給出了相關的答案,而我從中發

原创 【Go】使用壓縮文件優化io (二)

原文鏈接: https://blog.thinkeridea.com/... 上一篇文章《使用壓縮文件優化io (一)》中記錄了日誌備份 io 優化方案,使用文件流數據壓縮方案優化 io 性能,效果十分顯著。這篇文章記錄數據分析前置清洗、格

原创 【Go】使用壓縮文件優化io (一)

原文連接:https://blog.thinkeridea.com/... 最近遇到一個日誌備份 io 過高的問題,業務日誌每十分鐘備份一次,本來是用 Python 寫一個根據規則掃描備份日誌問題不大,但是隨着業務越來越多,單機上的日誌文件

原创 【Go】獲取用戶真實的ip地址

原文鏈接:https://blog.thinkeridea.com/... 用戶請求到達提供服務的服務器中間有很多的環節,導致服務獲取用戶真實的 ip 非常困難,大多數的框架及工具庫都會封裝各種獲取用戶真實 ip 的方法,在 exnet

原创 【Go】IP地址轉換:數字與字符串之間高效轉換

轉載:https://blog.thinkeridea.com/201903/go/ip2long.html IP 地址庫中 IP 地址的保存格式一般有兩種,一種是點分十進制形式(192.168.1.1),另一種是數字形式(32322357

原创 【Go】go get 自動代理

原文鏈接:https://blog.thinkeridea.com/201903/go/go_get_proxy.html 最近發現技術交流羣裏很多人在詢問 go get 牆外包失敗的問題,大家給了很多解決方案: 從 Github 的代碼

原创 【Go】那麼多數值類型,應該選哪個?

原文鏈接:https://blog.thinkeridea.com/... Go 內置很多種數值類型,往往初學者不知道編寫程序如何選擇,使用哪種數值類型更有優勢。 內置的數值類型有:uint8、 uint16、 uint32、 uint64

原创 【Go】string 也是引用類型

原文鏈接:https://blog.thinkeridea.com/... 初學 Go 語言的朋友總會在傳 []byte 和 string 之間有着很多糾結,實際上是沒有了解 string 與 slice 的本質,而且讀了一些程序源碼,也發

原创 【Go】strings.Replace 與 bytes.Replace 調優

原文鏈接:https://blog.thinkeridea.com/... 標準庫中函數大多數情況下更通用,性能並非最好的,還是不能過於迷信標準庫,最近又有了新發現,strings.Replace 這個函數自身的效率已經很好了,但是在特定情

原创 【Go】優雅的讀取http請求或響應的數據-續

原文鏈接:https://blog.thinkeridea.com/... 之前發佈 【Go】優雅的讀取http請求或響應的數據 文章,網友 “wxe” 諮詢:“優化前後的請求耗時變化有多大”,之前只分析了內存分配,這篇文章用單元測試的方式

原创 【Go】優雅的讀取http請求或響應的數據

原文鏈接:https://blog.thinkeridea.com/... 從 http.Request.Body 或 http.Response.Body 中讀取數據方法或許很多,標準庫中大多數使用 ioutil.ReadAll 方法一次

原创 【Go】slice的一些使用技巧

原文鏈接:https://blog.thinkeridea.com/201901/go/slice_de_yi_xie_shi_yong_ji_qiao.html slice 是 Go 語言十分重要的數據類型,它承載着很多使命,從語言層面來

原创 【Go】深入剖析slice和array

array 和 slice 看似相似,卻有着極大的不同,但他們之間還有着千次萬縷的聯繫 slice 是引用類型、是 array 的引用,相當於動態數組,這些都是 slice 的特性,但是 slice 底層如何表現,內存中是如何分配的,特別是

原创 一次讀鎖重入導致的死鎖故障

在兩天前第一次遇到自己的程序出現死鎖, 我一直非常的小心使用鎖,瞭解死鎖導致的各種可能性,這次的經歷讓我未來會更加小心,下面來回顧一下死鎖發生的過程與代碼演進的過程吧。 簡述業務背景及代碼演進過程 我的程序中有一塊緩存,數據會組織好放到內存