Time of Update: 2014-10-09
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。Go是很實在的程式設計語言,從一開始就提供了很詳細的運行狀態資訊。產品上線後的調優和排查疑難雜症都得靠這些狀態資訊。這邊總結一些我們項目裡用到的狀態監控手段。pprofGo內建了一個pprof工具,這個工具可以做CPU和記憶體的profiling,官方的部落格有一篇文章介紹用法:《Profiling Go
Time of Update: 2014-10-09
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。示範地址 http://gblog-revel.herokuapp.com/1.實現留言板我們在上一章做了簡單的設計,挑就留言的表單有了,那麼。。。。。首先,在app/models下建立message.go 內容:package modelsimport ("github.com/revel/revel""labix.org/v2/mgo/bson""time")type
Time of Update: 2014-10-07
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。這裡講一下project A的開始代碼。同時測試代碼也會給你的操作評分評等級。還有檔案裡的兩個簡單輸出,伺服器和用戶端(分別在srunner 和 crunner裡)可以幫你測試自己的代碼是否按照要求運行。注意,上面的這些代碼和指令都是假設你把go語言的路徑設定在根目錄“p1”下的。如果你有任何建立,安裝和測試檔案的問題,http://golang.org/doc/code.html可以去這裡看看“ How to Write Go
Time of Update: 2014-10-07
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。sorry,各位在開始這一章之前請各位先到,第5章把整個項目的css copy出來,這一章忘了加,本來想在後面加的,但是發現頁面的內容太多了1.設計評論頁面上一章我們做了簡單的寫blog和顯示功能,這裡不得不說一下,首先,我們的blog裡面不能加圖片連結這樣的東西,不支援markdown文法。博主比較懶,嘗試找了幾個外掛程式發現不滿意之後就不想嘗試了(其實能找到github編寫wiki的編輯器才是我想要的,有誰知道的告訴我哦),
Time of Update: 2014-10-05
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。做了一個簡易留言板系統,練練手,用到了7個包,呵呵.以後要多寫寫東西,這樣進步比較快.main.go// Golang簡易留言板系統// Author: dotcoo zhao // mysql// CREATE TABLE liuyan (// id int primary key auto_increment not null,// name varchar(20) not null,// url
Time of Update: 2014-10-09
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。用戶端程式:package mainimport ("net""os""fmt""io")//緩衝區大小const BUFFSIZE = 1024//定義訊息緩衝區var buff = make([]byte, BUFFSIZE)//連結處理func handleConn(tcpConn *net.TCPConn, addr string) {if tcpConn =
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 map 資料直接賦值,或者作為函數參數傳遞時是 指標傳遞, 修改其中一個則會修改全部變數資料 func main() { var s_map = make(map[int]int) for i := 0; i <= 5; i++ { s_map[i] = i } fmt.Println(s_map) s_map2 := s_map s_map2[10] =
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 今晚 在拿sqlite3來做個小demo,驅動用到github.com/mattn/go-sqlite3 發現 就算寫入 time.now() 都不是本地時區,於是乎到github.com/mattn/go-sqlite3去查看代碼,發現 https://github.com/mattn/go-sqlite3/blob/master/sqlite3.go#L324 這個連結裡面高亮的 部分是utc
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
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 package appengine import "code.google.com/p/appengine-go/appengine" appengine包提供Google App Engine的基本函數服務。 更多細節參見:https://developers.google.com/appengine/docs/go/ Index type MultiError func (
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。買來《Go
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 1. golang的log模組 golang的log模組可以很方便的建立自己的日誌記錄,包括記錄檔路徑,日誌格式等都可以自己定義。先來看一個程式: package mainimport ("fmt""log""os")func main() {logfile, err := os.OpenFile("d:\\test.log", os.O_RDWR|os.O_
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 gopack grc _test/http.a _gotest_.6--- FAIL: http.TestClientGet http://www.google.com/robots.txt: read tcp:192.168.1.2:49664->64.233.189.103:80: connection reset by peerFAILmake[1]: *** [test] Error 1make: ***
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。下面代碼修改自golang樣本源碼package mainimport ("fmt""sync""net/http""io/ioutil""log")func GetDemo(addr string) {res, err := http.Get(addr)if err != nil {log.Fatal(err)}robots, err :=
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。這個例子是從go源碼src/pkg/net/rpc/server_test.go截取出來的func benchmarkEndToEndAsync(dial func() (*Client, error), b *testing.B) { const MaxConcurrentCalls = 100 b.StopTimer() once.Do(startServer) client, err :=
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 package exec用於運行外部命令,它封裝了os.StartProcess,從而使操作更容易。 Index Variables func LookPath(file string) (string, error) type Cmd func Command(name string, arg ...string) *Cmd func (c *Cmd)
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。前端通過udp與接入伺服器串連,接入伺服器與後端tcp伺服器維持tcp串連。目錄結構及後端tcp伺服器代碼同上一篇部落格。main.gopackage mainimport ( "lotuslib")const ( ip = "0.0.0.0" port = 1987)func main() { udplotus.UdpLotusMain(ip,
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。使用了github.com/go-sql-driver/mysql驅動。go在database/sql中實現了串連池,所以每次操作資料庫,重複開啟關閉即可。 1 package main 2 3 import( 4 "database/sql" 5 _ "github.com/go-sql-driver/mysql" 6 "fmt" 7 ) 8 9
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。github:https://github.com/ZhangzheBJUT/blog/blob/master/golang_rpc.md 一 HTTP RPC服務端代碼package mainimport ("errors""fmt""net/http""net/rpc")const ( URL = "192.168.2.172:12981")
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。Get, Head, Post, and PostForm 可以構成 HTTP (or HTTPS) requests:resp, err := http.Get("http://example.com/")...resp, err := http.Post("http://example.com/upload", "image/jpeg", &buf)...resp,