Golang Notes

測試

Test 代碼測試

func TestAdd(t *testing.T) {
    tests := []struct{a, b, c int}{
        {1, 2, 3},
        {4, 5, 6},
        {123, 345, 468},
        {1, 345, 468},
    }

    for _, tt :=range tests{
        if actual := add(tt.a, tt.b); actual!=tt.c{
            t.Errorf("add(%d, %d); get %d; expected %d\n", tt.a, tt.b, actual, tt.c)
        }
    }
}

Benchmark 性能測試

性能數(shù)據(jù)分析

測試代碼

func BenchmarkAdd(b *testing.B){

    inA, inB:=123, 345
    outC:=468

    // 之前操作不計入計時
    b.ResetTimer()
    for i:=0;i<b.N;i++ {
        actual := add(inA, inB)
        if actual != outC {
            b.Errorf("add(%d, %d); get %d; expected %d\n", 
                inA, inB, actual, outC)
        }
    }
}

命令行操作

// 運行測試
go test -bench . -cpuprofile cpu.out

// 分析輸出的測試數(shù)據(jù)文件`cpu.out`
go tool pprof cpu.out

// 交互頁面輸入web生成svg分析數(shù)據(jù)
// 需要下載工具并配置環(huán)境變量

工具 Graphviz - Graph Visualization Software

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容