英Leaning Technologiesは、WebAssemblyで実装したJava仮想マシン「CheerpJ 3.0」の提供を2月1日(現地時間)に開始した。今回の新バージョンはゼロからコードを書き直し、新しいアーキテクチャを採用した。Leaning Technologiesは、CheerpJを商用ソフトウェアとして提供しており、企業などが商用ソフトウェア開発のために使用する場合は、有料のライセンス契約が必要になる。そして、個人やオープンソース開発者に向けては無料で提供している。
CheerpJは、Webブラウザ上でJavaアプリケーションをそのまま動作させることを可能にするソフトウェア。JavaのバイトコードをJavaScriptに変換して、HTML5アプリケーションとして実行する。Javaアプリケーションの「.jar」ファイルを実行できるほか、JavaアプレットやJava Web Startといった古い技術を利用したプログラムにも対応する。また、AWTやSwingといったGUIツールキットを使ったGUIアプリケーションを実行させることもできる。
CheerpJ 3.0はC++で開発し、Leaning Technologiesが持つコンパイラでWebAssemblyにコンパイルしたものになっており、Webブラウザ上ではWebAssemblyプログラムとして動作する。Javaのバイトコードを受け取ったら、まずはインタプリタで動作させ、その過程で最適化に必要な情報を収集する。その後に、JIT(Just-in Time)でコンパイルすることで、最適化した事項ファイルを得る。
前バージョンでは、Javaアプリケーションの性能を上げるためのオプションとして、Javaプログラムを開発者が事前コンパイル(AOT Compilation)する機能を提供していたが、今回の新版からは事前コンパイルの機能はなくなった。Leaning Technologiesの検証によると、新設計の仮想マシンは、JITコンパイルでも、前バージョンまでの事前コンパイルよりも優れた性能を発揮し、特にアプリケーションの起動速度が改善しているとしている。
現在のところCheerpJ 3.0は、Java 8にしか対応していないが、今年中にJava 11など、ほかのバージョンへの対応を計画しているという。
この記事は参考になりましたか?
- この記事の著者
-
CodeZine編集部(コードジンヘンシュウブ)
CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です