golang 效能測試

來源:互聯網
上載者:User

格式:

func BenchmarkXxx(b *testing.B)

簡單代碼:

package examplesimport (    "io/ioutil"    "net/http"    "testing")// 測試並發效率func BenchmarkLoopsParallel(b *testing.B) {    b.RunParallel(func(pb *testing.PB) { //並發        for pb.Next() {            resp, err := http.Get("http://10.10.200.128:8080/image?t=MDA")            if err != nil {                // handle error            }            cookies := resp.Cookies()            verify_key := ""            for _, v := range cookies {                if v.Name == "VERIFY_KEY" {                    verify_key = v.Value                }            }            if err != nil {                // handle error            }            defer resp.Body.Close()            if verify_key == "" {                b.Fail()            }        }    })}

運行

go test -bench="."

  • -parallel 50 設定並發
  • -count n 設定次數

testing.T

判定失敗介面

  • Fail 失敗繼續
  • FailNow 失敗終止

列印資訊介面

  • Log 資料流 (cout 類似)
  • Logf format (printf 類似)
  • SkipNow 跳過當前測試
  • Skiped 檢測是否跳過

綜合介面產生:

  • Error / Errorf 報告出錯繼續 [ Log / Logf + Fail ]
  • Fatel / Fatelf 報告出錯終止 [ Log / Logf + FailNow ]
  • Skip / Skipf 報告並跳過 [ Log / Logf + SkipNow ]

testing.B

首先 , testing.B 擁有testing.T 的全部介面。

  • SetBytes( i uint64) 統計記憶體消耗, 如果你需要的話。
  • SetParallelism(p int) 制定並行數目。
  • StartTimer / StopTimer / ResertTimer 操作計時器

testing.PB

  • Next() 介面 。 判斷是否繼續迴圈

注意點

  1. 檔案需已test.go結尾
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.