Javaのベンチマークとしてよく使われているDaCapoは,イマイチ各ベンチマークアプリがシングルスレッドで動いているのかマルチスレッドで動いているのか分かりづらい.公式サイトのThreadingのページを覗くと,「シングルスレッドだが内部的には...」みたいな記述が多い.

何回も思い出すのが大変なのでここに実験の簡単な結果を置いておく.なお,都合上動作確認を行っていないものもある.

確認したベンチマークは以下の9種.

  • avrora
  • fop
  • h2
  • jython
  • luindex
  • lusearch-fix
  • pmd
  • sunflow
  • xalan

これらのベンチマークを,稼働スレッド数を変更しながら5回実行し,その平均実行時間を測定した.今回はマルチスレッド対応かどうかのみが調査対象なので,実験環境その他については割愛する.

以下,グラフの横軸は稼働スレッド数,縦軸は実行時間 [ms] である.

大雑把ではあるが,スレッド数を増やしても実行時間が変わらないものはマルチスレッド非対応,実行時間が減少するものはマルチスレッド対応とする.

今回実験したベンチマークアプリの内,マルチスレッドに対応しているのは

  • lusearch-fix
  • sunflow
  • xalan

の3種であった.