Goでテーブル駆動のベンチマークをとる方法
2024-08-16 10:26:05 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 Hook2024-08-16 12:36:24#5 の題材を、今度は Render Hook という機能を使って実装します。
- 📄 pomi2024-08-16 10:26:05ポメラSyncされたメモを操作するツール →後継のソフトウェアpmsyncを使ってください。
- 📄 Goでテーブル駆動のベンチマークをとる方法2024-08-16 10:26:05公式に記載ありますが、まとめてみます。
- 📄 slog-handler-guide2024-08-16 10:26:05slog-handler-guide の解説
- 📄 Popcorn2024-08-16 10:26:05自分がよく使うコマンドを登録して呼び出すための Vim script
- 📄 Ergodox EZ キーボードレイアウト2024-08-16 10:26:05JISレイアウトを参考にした、Ergodox EZ のキーボードレイアウト
- 📄 Go言語でのスタックトレースを簡素化する2024-08-16 10:26:05Go言語のパッケージ: 冗長なスタックトレースを簡素化して出力します。
- 📄 Keychron K15 Pro2024-08-15 21:30:59買ったので雑に感想でも書いてみます。
- 📄 Vim LSP メモ2024-08-15 21:30:59忘れそうな内容をメモ
- 📄 GOEXPERIMENT + Build Constraints2024-08-15 21:30:59例えば GOEXPERIMENT=rangefunc の場合にビルドしたい/したくない場合の書き方