kawasin73 / knowledge

気になったツールやサイト、勉強した内容をまとめます。
9 stars 0 forks source link

ベンチマークの取り方 #12

Open kawasin73 opened 6 years ago

kawasin73 commented 6 years ago

ベンチマークを取る時に気をつけることをまとめます。

kawasin73 commented 6 years ago

さまざまなアルゴリズムや API (KVS のメソッド呼び出しなど)のベンチマークを取る時には、最小の単位でベンチマークを取るのではなく、実際のユースケースのベンチマークを取る。

例として このissue では、関数ポインタとインターフェイス呼び出しと switch 文の呼び出しの速度比較をしているが、メソッドの中では以下のように足し算一つしか行っていない。

func Gen0(i int) int {
return i
}

実際のユースケースはもっと複雑になるが、単純なテストケースでは 最適化のされ方が異なる可能性 がある。

また、並列に呼ばれたり別のメソッドとの干渉などは単純なメソッド呼び出しの繰り返しでは影響を計測することができない。

そのため、実際のユースケースに似たテストケースでベンチマークをとって技術選定やパフォーマンスチューニングを行うべきである。