Time of Update: 2018-08-04
最近在最佳化Go項目,學習了一下Golang的調優相關內容。發現了一篇很不錯的文章,翻譯出來分享給大家。 之前寫過一篇文章《為什麼SignalFx metric proxy通過Go語言開發》,這篇文章將會關注以我們的ingest服務為例,來講述我們是如何最佳化Go代碼的。
Time of Update: 2018-08-05
上個月受 DockOne 社區邀請,做了一次 CI 實踐方面的線上分享,在此記錄下。本文講述 GitLab CI 的架構及其能力特性,分析它在 DevOps 實踐中的作用。 通過分析 Docker In Docker 的技術細節,詳細講述 CI 實踐以及在生產環境中的所做的最佳化,包括但不限於鏡像倉庫等,以達到數倍的效能提升。本次分享內容以 GitLab Community Edition 11.0.4 edb037c 為例。為何選擇 GitLab CI認識 GitLab CI什麼是
Time of Update: 2018-08-05
unsafe.Pointer其實就是類似C的void *,在golang中是用於各種指標相互轉換的橋樑。uintptr是golang的內建類型,是能儲存指標的整型,uintptr的底層類型是int,它和unsafe.Pointer可相互轉換。uintptr和unsafe.Pointer的區別就是:unsafe.Pointer只是單純的通用指標類型,用於轉換不同類型指標,它不可以參與指標運算;而uintptr是用於指標運算的,GC 不把 uintptr 當指標,也就是說 uintptr
Time of Update: 2018-08-05
儘管 Go 編譯器產生的是本地可執行代碼,這些代碼仍舊運行在 Go 的 runtime(這部分的代碼可以在 runtime 包中找到)當中。這個 runtime 類似 Java 和 .NET 語言所用到的虛擬機器,它負責管理組件括記憶體配置、記憶體回收(第 10.8 節)、棧處理、goroutine、channel、切片(slice)、map 和反射(reflection)等等。runtime 調度器是個非常有用的東西,關於 runtime 包幾個方法:Gosched:讓當前線程讓出 cpu
Time of Update: 2018-08-05
一、寶付私密金鑰加密,公開金鑰解密 由於對RSA加密解密原理不是很熟悉,寶付也沒有Golang的Demo提供。Go語言庫裡一般都是私密金鑰解密、公開金鑰加密,或者私密金鑰簽名、公開金鑰驗簽。寶付需要反過來,這裡也到好找到了https://github.com/farmerx/gorsa的實現,但始終寶付那邊提示簽名驗證失敗。然後就繼續找其他的實現了,這就慘了各種Google完全無解。最後回過頭來只能,使用加解密原文,跟.Net平台的結果進行比對。一通折騰或者叫折磨之後,發現其實只是每次加密多了
Time of Update: 2018-08-05
JVM最佳化之調整大記憶體分頁(LargePage)本文將從記憶體分頁的原理,如何調整分頁大小兩節內容,向你闡述LargePage對JVM的效能有何提升作用,並在文末點明了大內分頁的副作用。OK,讓我們開始吧!記憶體分頁大小對效能的提升原理首先,我們需要回顧一小部分電腦群組成原理,這對理解大記憶體分頁至於JVM效能的提升是有好處的。什麼是記憶體分頁?我們知道,CPU是通過定址來訪問記憶體的。32位CPU的定址寬度是 0~0xFFFFFFFF
Time of Update: 2018-08-05
基於Go語言編寫,只需要檔案配置,利用極少的代碼即可運行起一個web端的管理平台。前端利用adminlte搭建,為更好的體驗使用了無重新整理的pjax技術。後端基於fasthttp架構搭建。前後端結合,後端配置即可產生前端代碼,支援多種前端展示組件。目前的版本僅支援mysql資料庫。項目地址:https://github.com/chenhg5/go...使用指南:https://github.com/chenhg5/go...後續版本的開發計劃:支援無代碼web頁面配置支援sqlite案頭版支
Time of Update: 2018-08-05
dep golang 包管理使用記錄dep 是 golang 項目依賴管理之一,是官方的實驗項目,目前更新很頻繁處於高速發展期,所以選 dep 作為 golang 的依賴管理器是比較靠譜的。(已知 glide 僅支援不再開發新功能)目前 dep v0.5.0 release 已經發布,最新的 changelog 顯示只支援 golang 1.9+ 以上的版本golang 最原始的依賴管理是 go get ,執行命令後會拉取代碼放入 src 下面,但是它是作為 GOPATH 下全域的依賴,並且
Time of Update: 2018-08-05
前端代碼``` $("#btn").click(function(){ $.post({ url: 'http://localhost:9999/class_add', dataType:"json", data: { class_name:"hulu",
Time of Update: 2018-08-05
在公司專屬應用程式中RPC的使用可以說是十分的廣泛,使用該技術可以方便的與各種程式互動而不用考慮其編寫使用的語言。如果你對RPC的概念還不太清楚,可以點擊這裡。現今市面上已經有許多應用廣泛的RPC架構,比如GRPC,而今天我們要介紹的是同樣使用廣泛的Apache
Time of Update: 2018-08-05
package mainimport ("github.com/sanity-io/litter")func main() {var mapInt = make(map[int]int)// addfor i := 1; i < 10; i++ {mapInt[i] = i}litter.Dump(mapInt)// updatemapInt[3] = 0litter.Dump(mapInt)// deldelete(mapInt,
Time of Update: 2018-08-05
案例描述:中國古代數學家張丘建在他的《算經》中提出了一個著名的“百錢百雞問題”:一隻公雞值五錢,一隻母雞值三錢,三隻小雞值一錢,現在要用百錢買百雞,請問公雞、母雞、小雞各多少只?案例分析:如果用一百錢只買一種雞,那麼,公雞最多20隻,母雞最多33隻,小雞最多300隻。但題目要求買100隻,所以小雞的數量在0~100之間,公雞數量在0~20之間,母雞數量在0~33之間。我們把公雞,母雞和小雞的數量分別設為cock、hen、chicken,通過上述分析可知:(1)0<=cock<=20;
Time of Update: 2018-08-04
搭建fabric網路環境需要準備如下環境,後面會詳細介紹安裝過程。環境Linux:Ubuntu 16.04Golang:1.9+docker:1.12+Fabric:1.1.0工具gitcurlvimgolang (goroot,gopath)dockerdocker-compose實現docker的自動化操作簡化docker容器操作命令一條命令即可啟動docker容器相關的操作命令是被整合在一個設定檔中nodenpm安裝fabric下載docker鏡像
Time of Update: 2018-08-04
本文系第十五篇Golang語言學習教程什麼是字串Go 語言中的字串是一個位元組切片. 把內容放在雙引號之間, 就可以建立一個字串.package mainimport "fmt"func main() { name := "hello world" fmt.Println(name)}程式輸出:hello worldGo 中字串是相容 Unicode 編碼的, 並且使用 UTF-8 進行編碼.單獨擷取字串的每一個位元組由於字串是位元組切片,
Time of Update: 2018-08-04
前言當寫下這篇文章時,我是一個本科大三的學生,出來實習工作一個月的樣子了,平時也有寫點兒東西記錄生活的習慣,這就來記錄下我從學校出來到現在這接近一個月的工作生活。決定就業了在進入大三後,開始了自己的規劃,主要就是考慮是考研還是就業,當然我最後的決定是參加工作,至於這個決定是如何決定的,我認為每個人生活中面臨的事情不一樣,也就不一樣。我是學IT的,對於電腦類,算是科班出身,但是後面的一些經曆讓我感覺到自己是多麼的渺小,是多麼地需要學習。說實話,特別是在大三那段時間,特別迷茫,第一個不知道自己會什麼
Time of Update: 2018-08-04
今天我們來講講自訂群組件和它的建構函式。在前面的文章裡我們已經接觸了好幾個自定組件,這次的樣本是一個自訂對話方塊,他有一個about按鈕,點擊按鈕可以顯示出Qt的資訊或者使用者輸入的資訊。這是:下面我們就來重點講解自訂群組件和它的建構函式吧。建構函式的聲明先上代碼:type MyDialog struct { widgets.QDialog _ func() `constructor:"init"` _ func(string) `signal:
Time of Update: 2018-08-04
前言前面一篇文章我們介紹了怎麼在windows下安裝配置GO開發環境。這一篇我們來介紹代碼Golang的目錄結構、應用編譯、自訂包及遠程包的引用。代碼目錄結構上一篇末尾我們設定的GOPATH下的src目錄就是我們接下來開發程式的主要目錄,所有的源碼都是放在這個目錄下面,一般的做法就是一個目錄一個項目。例如: %GOPATH%/src/mymath
Time of Update: 2018-08-03
go環境配置建立目錄~/.go_env/go~/.go_env/gopath下載go的10+版本到"~/.go_env/go"在.profile中添加如下代碼export GOROOT=$HOME/.go_env/goexport GOPATH=$HOME/.go_env/gopathexport PATH=$GOROOT/bin:$GOPATH/bin:$PATHvscode dev
Time of Update: 2018-08-03
一、Best Practice注釋應該聲明代碼的高層次意圖,而非明顯的細節反例說明上文方法用於根據參數產生簽名,注釋中詳細描述了簽名演算法的實現步驟,這其實就是過度描述代碼明顯細節正例總結1. 注釋一定是表達代碼之外的東西,代碼可以包含的內容,注釋中一定不要出現2.
Time of Update: 2018-08-03
1、首先看官方綁定,time.Time將綁定失敗func(c echo.Context) (err error) { u := new(User) if err = c.Bind(u); err != nil { return } return c.JSON(http.StatusOK, u)}2、自訂綁定加入Struct類型判斷:image.png直接添加選項 case reflect.Struct: //時間類型 var t