Movatterモバイル変換


[0]ホーム

URL:


コンテンツにスキップ
Wikipedia
検索

IBM J9

出典: フリー百科事典『ウィキペディア(Wikipedia)』
Eclipse OpenJ9
開発元Eclipse Foundation(2017年9月まではIBM
最新版
0.55.0 /2025年10月3日 (4か月前) (2025-10-03)[1]
リポジトリgithub.com/eclipse/openj9
プログラミング
言語
対応OS[2]
プラットフォームx86-64ARM64POWERIBM Z[2]
種別Java仮想マシン
ライセンス
公式サイトwww.eclipse.org/openj9/
テンプレートを表示

Eclipse OpenJ9は、Eclipse Foundation(2017年9月まではIBM)が開発しているJava仮想マシン。IBMのWebSphere製品や、DB2製品の標準VMとして利用されている。

沿革

[編集]

IBMは元々Java 2対応のJDKを提供しており、チューニングされたclassic VMを同梱していたが、Java 5準拠のJDKを提供するにあたって新たにVMを開発し、IBM J9 VMと命名した。

IBMはJavaOne 2016でJ9をオープンソース化する計画を発表し[3]、その後J9は2017年9月にEclipse Foundationに寄贈され、Eclipse OpenJ9に改称して公開された[4][5]

GCポリシー

[編集]

以下のようなポリシーが提供されている。

optthruput
ヒープに新たなオブジェクトの割り当てができなくなった時点でGCを行う。スループットに優れるが、stop-the-world (STW) の発生時間が長い。2.6より前までのデフォルトポリシー。
optavgpause
アプリケーションスレッドの中で少しずつマークを行い、ヒープの空きがなくなることを予測するとGCを行う。事前処理によってoptthruputより、スループットは減少するが、STWの時間は抑制される。
gencon
世代別GC。New世代 (nursery) とOld世代 (tenure) の領域にヒープを分割し、通常はnurseryに対してGC (scavenger) を行う。nurseryはヒープ全体の一部分であるため、scavenger時はSTW時間を大幅に削減することが可能となる。ただし、scavengerはcopy gc方式を採用しておりメモリ空間としては無駄が存在する。v2.6からデフォルトで選択されるポリシーとなった。
subpool
AIXのみで有効となるGC方式。大量のオブジェクトを生成する際にパフォーマンスを発揮する。
blanced - v2.6以降
ヒープを一定サイズで分割し、各々の領域に対してGCの必要性を判断、選択された領域に対してのみGCを行う。global gcが大幅に抑制されるが、大規模ヒープに最適化した方式であるため、小規模なヒープでの動作には向いていない。

診断用ツール

[編集]

トラブル診断用のツールが豊富に用意されている。以下はJVMの起動オプションを付与するだけで利用可能となっている。

dump agents
例外の発生時といったイベントをトリガーに、javadumpを出力したり、外部ツールを呼び出す機能。
シグナル受信時やOutOfMemoryError発生時にjavadumpを出力する機能は、この機能により実装されている。
method trace
メソッドの呼び出しや終了、呼び出しの引数などをトレースする機能。

採用

[編集]
IBM SDK
IBM社の製品プロダクトに同梱される形で提供される他に、IBM Developerからの単体ダウンロードも可能となっている[6][7][8]
OpenJDK
OpenJDKディストリビューションの一つであるAdoptOpenJDKがOpenJ9ビルドを配布していた[7]。2021年、AdoptOpenJDKはEclipse Adoptiumへ移行し、それにともないOpenJ9ビルドの提供を終了した[9]
IBM Semeru Runtimes
AdoptOpenJDKによるOpenJ9ビルド提供終了を受けて、IBMはOpenJDKのOpenJ9ビルドSemeru Runtimesを提供開始した[9][10]

脚注

[編集]
[脚注の使い方]
  1. ^Eclipse OpenJ9”. projects.eclipse.org. 2025年10月26日閲覧。
  2. ^abSupported environments -”. eclipse.dev. 2025年10月26日閲覧。
  3. ^“IBM、自社のJavaVMをオープンソース化すると発表。COBOLやPL/IのランタイムをJavaVMにも。Java 9と同時に正式版リリースを予定。JavaOne 2016”. Publickey. (2016年9月26日). https://www.publickey1.jp/blog/16/ibmjavavmcobolplijavavmjava_9javaone_2016.html 2019年9月27日閲覧。 
  4. ^“JavaVM「Eclipse OpenJ9」公開。IBMが「Java 9と同時にオープンソース化する」との約束を果たす”. Publickey. (2017年9月22日). https://www.publickey1.jp/blog/17/javavm_eclipse_openj9.html 2019年9月27日閲覧。 
  5. ^Eclipse Open J9 – Eclipse OMRプロジェクトベースのオープンソースJava仮想マシン”. InfoQ (2018年3月19日). 2019年9月27日閲覧。
  6. ^SDK のインストール”. IBM. 2019年9月27日閲覧。
  7. ^ab最適なOpenJDKディストリビューションの選び方” (pdf). p. 41. 2019年9月27日閲覧。
  8. ^Downloads - Overview - Java SDK” (英語). IBM Developer. IBM. 2019年9月27日閲覧。
  9. ^abGood-bye AdoptOpenJDK. Hello Adoptium!” (英語). 2022年2月5日閲覧。
  10. ^Introducing the no-cost IBM Semeru Runtimes to develop and run Java applications” (英語). 2022年2月5日閲覧。

外部リンク

[編集]
一般用途
組み込み
開発終了
スタブアイコン

この項目は、ソフトウェアに関連した書きかけの項目です。この項目を加筆・訂正などしてくださる協力者を求めていますPJ:コンピュータ/P:コンピュータ)。

https://ja.wikipedia.org/w/index.php?title=IBM_J9&oldid=106985051」から取得
カテゴリ:
隠しカテゴリ:

[8]ページ先頭

©2009-2026 Movatter.jp