BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース JVMの比較を目的とする新しいパフォーマンスベンチマーク”Renaissance”

JVMの比較を目的とする新しいパフォーマンスベンチマーク”Renaissance”

原文(投稿日:2019/06/06)へのリンク

Charles University、Oracle Labs、およびいくつかの大学の研究者たちが、Java Virtual Machineのパフォーマンステスト用の新たなベンチマークとしてRenaissanceをリリースした。JVMで開発を行う開発者は、この明確なベンチマークを使ってリリース間のパフォーマンスを測定することにより、特定のJVM上での自身のアプリケーションの動作について、理解を深めることが可能になる。

Renaissanceは、Java 8(2014)からJava 12(2019)までリリースされている同時実行機能を、より詳しくテストすることを目的とする。含まれているテストは、DaCapoやSpecJVM2008など、他のベンチマークで使用されている多くのテストを拡張したものだ。全体としては、並行性と同時実行性を重視した21のベンチマークがあり、JavaとScalaのコードをカバーする。JVMをベンチマークする一般的なテストのひとつとしては、IBMがJavaパフォーマンスに対するハードウェア変更の影響を実証するために使用しているSpecJBB2015がある。

Renaissanceホワイトペーパの著者12人中の5人は、Oracle LabsでGraalVMに従事している。GraalVMは新しい多言語仮想マシンで、Javaを含む多くのソフトウェア言語を単一のランタイムで実行するように設計されている。GraalVMはコミュニティとコマーシャルエンタープライズの2エディションで提供されており、各エディションにはホットスポットモードとネイティブイメージの2つの操作モードがある。HotSpotモードはOpenJDKのHotSpot実装にちなんで命名されたもので、OpenJDKに完全に準拠し、Javaテスト互換性キットをパスしている。もうひとつの運用モードであるネイティブイメージでは、クローズドワールドの仮定を採用して、Javaアプリケーションをネイティブマシンコードにコンパイルする。さまざまな理由のため、Java SEの互換性定義は満足しないが、クローズドワールドの前提に適合するアプリケーションの実行が可能だ。ExcelsiorのシニアソフトウェアエンジニアであるNikita Lipsky氏は、2004年にSun Microsystemsによって定義された、ネイティブイメージの互換性の問題を提起した。"ひとつの例は、プロダクトが'すべての構成'において互換性のあることを要求するルールの存在です。テストに合格するために特別な構成を使用して、実際には互換性のない別の構成を顧客に推奨するようなことは許されません。そう、そのようなトリックが使われたことがあったのです。"

InfoQはOracleと連絡を取って、Renaissanceベンチマークで公開されている数値が互換性のあるHotSpotモードで生成されたものであり、従って他のJVMとの比較が可能である、ということを確認した。

全体的なパフォーマンス報告では、GraalVMのコミュニティエディションがOpenJDKと同等であり、エンタープライズエディションはもっとよいスコアを出している。下のグラフは、高いほどよい結果を表している。
ルネサンスの結果

Renaissanceのリリースによって、同ベンチマークの測定対象と関与や関連を持たない他のJava実装との間で混乱が発生している。競争力のあるベンダが公正なベースラインとして同意した環境を管理するSPECとは異なり、Renaissanceに参加したVMベンダはGraalVMのみだ。12人の著者のうち7人は異なる大学の出身だが、そこに競争的な側面は存在しない。 "ベンチマークゲームでは信頼性が重要なのです。ベンダのベンチマークは利益相反でいっぱいです。新しいベンチマークスイートならば、なおさらです。(特別に最適化された)ベンダプロダクトの結果が示されたベンチマークスイートでは、さらになおさらです"と、Red HatでShenandoahガベージコレクタの開発に従事する、パフォーマンス専門家のAleksey Shipilev氏は述べている

"'新ベンチマーク'が開発されたタイミングは、おそらく偶然ではないでしょう。ですが、それも悪いことではありません。これがJVMのパフォーマンスの比較に使用可能な真のベンチマークかどうかは、時間が証明してくれるでしょう。" AzulのCTOであるGil Tene氏は、このように説明する。"レースは、競技者が現れて、同じスタートラインに立って初めてレースなのです。[Renaissanceが」真のベンチマークならば、'適応で右往左往'することなく、安定して同じ形を保つはずです。そうすれば他のベンダも、ベースラインとなる結果を安定的に再現することが可能になるため、実装間を実際に比較する結果測定が始まるでしょう。"

Shipilev氏は、ベンチマークを単にそのまま実行することを、スタートラインと定義することの難しさを、次のように説明している。"スイートは'オープンソースで変更が可能'なのですから、'ベンチマークは公平に選択された'というのは危険であって、現在の問題を解決するものではありません。"

この記事に星をつける

おすすめ度
スタイル

BT