Synopsis
- 說明 benchmark 測試方式
- 測試 reflect.TypeOf 與 fmt.Sprintf(“%T”) 誰的效能比較好些
go test -bench
1 |
|
go test -bench . -count 10 > run.txt
-count
: 執行的次數, 每個 bench func()> run.txt
: 存入檔案
得到
1 |
|
-4
: 表示 CPU 核心數573025
: 每一秒可跑幾次2026
: 每一次處理耗費的時間1600
: 每一次處理使用的 Bytes100
: 每一次處理需要分配的記憶體 allocations
example : main_test.go
- 因提到 reflect 的效能很差,故在這邊做個測試
- 測試 reflect.TypeOf() & fmt.Sprintf(“%T”) 哪個耗費的效能比較高
- 順便附上他人的測試 : https://gist.github.com/crast/61779d00db7bfaa894c70d7693cee505
1 |
|
- 執行
go test -bench .
1 |
|
從執行結果分析
- Reflect.TypeOf() 的效能比 fmt.Sprintf(“%T”) 來得好