cesium three性能比较_Go学习_21_Golang代码性能检测Benchmark
Golang的testing包中除了單元測試testing.T之外,還提供了testing.B的Benchmark性能測試,Benchmark測試主要是通過測試CPU和內(nèi)存的效率,來評估測試代碼的性能,與單元測試一樣,我們首先需要引入testing包,go的文件需要以_test結(jié)尾。
下面我們使用Benchmark測試一下字符串連接的性能:
第一種:使用+進行字符串的連接
第二張:使用bytes.Buffer實現(xiàn)字符串的連接
需要注意的是,Benchmark的性能測試要求每個被測試的方法以Benchmark開頭:
我們創(chuàng)建go測試文件concat_string_test.go文件:
通過命令開始測試代碼性能:
go test -bench=.運行結(jié)果:
從上面的Benchmark測試結(jié)果可以看到,使用bytes.Buffer進行字符串的連接性能更高,大約是前一種方法(使用+進行字符串連接)的三倍。
【注意】上面的命令 -bench=. 將會運行測試文件中所有Benchmark開頭的函數(shù)。
要是需要詳細分析方法的性能,可以使用 -benchmem:
go test -bench=. -benchmem運行結(jié)果:
我們可以看到-benchmem提供的測試數(shù)據(jù)多了兩行,除了單詞運行的速度之外,后面兩列數(shù)據(jù)分別是每次運行分配的內(nèi)存的字節(jié)數(shù),以及每次運行分配內(nèi)存的次數(shù)。從上面的測試結(jié)果可以看到,比較慢的方法內(nèi)存分配的次數(shù)比較多。
總結(jié)
以上是生活随笔為你收集整理的cesium three性能比较_Go学习_21_Golang代码性能检测Benchmark的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 山寨一把QQ移动终端聊天框,网页版效果其
- 下一篇: [转]游戏中各种性能优化方法(不断更新)