Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 同時發布在獨立部落格。 以前一直以為,在Golang中,針對高並發的情況,採用多核處理一定效果最優,但是項目實踐證明事實不是這樣的。 在Sniper項目中(一個結合了ab和siege優點的http負載測試工具),原來一直設定cup使用數為系統cpu總數: runtime.GOMAXPROCS(runtime.NumCPU()) 在與ab的效能比較中一直有較大差距,GET請求區域網路的一個10k大小的檔案:
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。golang讀取ini設定檔 一、安裝config配置解釋包: go get github.com/larspensjo/config 二、載入其包及代碼設定
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 一 、==========================array 數組=================================== 索引只能是 int 整數型 所以不管幾維數組 索引都是 整數 slice 是動態數組 索引也是 整數型 map為key 所以 可以為 整數 也可以為 字串型
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。類型轉換在程式設計中都是不可避免的問題。當然有一些語言將這個過程給模糊了,大多數時候開發人員並不需要去關注這方面的問題。但是golang中的類型匹配是很嚴格的,不同的類型之間通常需要手動轉換,編譯器不會代你去做這個事。我之所以說通常需要手動轉換,是因為interface類型作為一個特例,會有不同的處理方式。 golang中的所有類型都有自己的預設值,對此我做了個測試。 $GOPATH/src
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。在網路傳輸協議過程中,封包常見的方式一般是: ①頭標識+資料頭(類型/屬性/資料長度)+資料體+尾標識 -->一般還需要轉義 ②固定長度 --> 編解碼方便,浪費寬頻 ③通過結尾標識(eg.通過base64傳輸,以\0結束) -->編解碼方便,浪費 寬頻 下面是golang在編解碼的常用手段 解碼 首先需要把[]byte的ascii串轉化為uint8,uint16,uint32,uint64等
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 net.http 包中的逾時設定 服務端 app.Server.ReadTimeout app.Server.WriteTimeout 是針對所有請求設定的選項 預設 net.http keepalived 開啟,逾時時間為 3 分鐘,如下 1942 type tcpKeepAliveListener
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 Channel 重複關閉channel ch := make(chan bool)close(ch)close(ch) // 這樣會panic的,channel不能close兩次 讀取的時候channel提前關閉了channel close(ch)i := <- ch //不會panic, 但是i讀取到的是零值(""/false/nil) 向已經關閉的channel寫資料
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。內建的gob rpcserver
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 golang中的標準輸出很簡單: package mainimport ("fmt")func main() {fmt.Println("Hello world");} 標準輸入的,自己試了好多次都不行: package mainimport ("fmt")func main() {var str stringfmt.Scanln(str)fmt.Printf(
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。因為我的本地開發環境是os x 但伺服器是linux,所以需要編譯linux用的go程式,方法如下: 各平台的GOOS和GOARCH參考 OS ARCH OS version linux 386 / amd64 / arm >= Linux 2.6 darwin 386 / amd64 OS X (Snow Leopard + Lion) freebsd 386 / amd64 >= FreeBSD 7
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 golang 語言中 也有 類是 javascript 的 typeof 判斷類型的 方法 比如 func (a interface{}){ //第一種 if inst,ok:=a.(TypeA);ok{ inst.MethodA() } //第二種
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 原始圖片: 添加浮水印後的圖片: //golang圖片式浮水印處理//未實現Web上傳等代碼...//sam//2013.6.19//http://zituo.netpackage mainimport ("fmt""image""image/draw""image/jpeg""image/png""os
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 總結一下golang中的指標與C語言的指標的用法。 總體一致: C的代碼: int *number;number = (int *) malloc(sizeof(int));*number = 3;printf("%d\n", *number); golang的代碼: var pointer *int;pointer = new(int);*pointer =
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。golang的nil在概念上和其它語言的null、None、nil、NULL一樣,都指代零值或空值。nil是預先說明的標識符,也即通常意義上的關鍵字。在golang中,nil只能賦值給指標、channel、func、interface、map或slice類型的變數。如果未遵循這個規則,則會引發panic。對此官方有明確的說明:http://pkg.golang.org/pkg/builtin/#Type
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 Go 語言中包括以下內建基礎類型: 布爾型:bool 整型:int int64 int32 int16 int8 uint8(byte) uint16 uint32 uint64 uint 浮點型:float32 float64 複數型:complex64 complex128 字串:string 字元型:rune 錯誤型:error 1. bool類型 關鍵字: bool 可定義為: true 或者
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。golang時間處理 相關包 "time" 時間戳記 目前時間戳 fmt.Println(time.Now().Unix())# 1389058332 str格式化時間 當前格式化時間 fmt.Println(time.Now().Format("2006-01-02 15:04:05")) # 這是個奇葩,必須是這個時間點, 據說是go誕生之日, 記憶方法:6-1-2-3-4-5# 201
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 首先說明golang 語言設計設有個叫 XXnuts的傢伙,果然是個變態,把時間原點設計在了 2006-01-02 15:04:05 其實人家這個日期是有意義的: 2006-01-02T15:04:05Z07:00 每個數位意義: 1 2 3 4 5 6 7 月 日 時 分 秒 年 時 區 常用的方法: 1 toTime格式化(Parsing): 用法一: 使用毫秒數 t :=
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。golang xml 處理 產生xml時 屬性必須大寫
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 今天接觸到了Go語言, 請原諒我現在才接觸到Go, 之前聽雲風大神說起過, 但我總把它和易語言混淆了, 導致我沒有更早的瞭解到這個語言. 就在一年多前, 那個時候的我還是對C++無比的熱愛, 認為c++是做後台伺服器的不二選擇. 那個時候總認為c 跟 c++是一家的, 所以我總愛標榜自己為c/c++程式員. C++雖然完全相容了C(這是優點, 也是C++致命的缺陷), 但是C++跟C的設計思想可以說是很不一樣的,
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。今天開始打算學習golang, 說 並發性很好,非常適合做伺服器開發的.初步打算用golang寫伺服器網關,用python寫商務服務器,這樣可以減少服務的重啟率,提高服務穩定性和效率. IDE使用LiteIDE 設定檔如下: 查看 -- 編輯環境變數 # native compiler windows 386GOROOT=D:\Software\golangGOBIN=D:\Software\golang\binGOPATH=C: