Goでテーブル駆動のベンチマークをとる方法
8 months ago go公式に記載ありますが、まとめてみます。
ベンチマークのシナリオ
- 数値を文字列に変換する関数を作った。
- 標準パッケージが提供する同種の関数と、パフォーマンスの比較をしたい。
- テーブルとして用意したテストケースそれぞれについて比較をしたい。
書き方(ベンチマークの部分のみ)
|
|
結果の出力例
go test -bench .
全部で6つあるテスト結果のうち、前半4つがテーブル駆動の出力例です。
BenchmarkStringer/plus(std)-8 144737995 8.125 ns/op
BenchmarkStringer/plus(my)-8 54076951 20.84 ns/op
BenchmarkStringer/minus(std)-8 17072347 61.68 ns/op
BenchmarkStringer/minus(my)-8 26117388 40.63 ns/op
BenchmarkStringer/std-all-8 16578752 70.74 ns/op
BenchmarkStringer/my-all-8 19311915 64.46 ns/op
対象を絞り込む
-bench xxx
でベンチマーク対象となるテストケースを絞り込むこともできます。
go test -bench /minus
BenchmarkStringer/minus(std)-8 17571860 67.47 ns/op
BenchmarkStringer/minus(my)-8 27569918 43.05 ns/op
- 📄 Hugo テーマ 6. Render Hook3 months ago#5 の題材を、今度は Render Hook という機能を使って実装します。
- 📄 git-cx3 months agogitのコミットメッセージを、コマンドラインで選択しながら構築していくツール
- 📄 Go言語でのスタックトレースを簡素化する8 months agoGo言語のパッケージ: 冗長なスタックトレースを簡素化して出力します。
- 📄 Goでテーブル駆動のベンチマークをとる方法8 months ago公式に記載ありますが、まとめてみます。
- 📄 slog-handler-guide8 months agoslog-handler-guide の解説
- 📄 Popcorn8 months ago自分がよく使うコマンドを登録して呼び出すための Vim script
- 📄 Ergodox EZ キーボードレイアウト8 months agoJISレイアウトを参考にした、Ergodox EZ のキーボードレイアウト
- 📄 pomi8 months agoポメラSyncされたメモを操作するツール →後継のソフトウェアpmsyncを使ってください。
- 📄 Keychron K15 Pro8 months ago買ったので雑に感想でも書いてみます。
- 📄 Vim LSP メモ8 months ago忘れそうな内容をメモ