コンテンツにスキップ

IBM J9

出典: フリー百科事典『ウィキペディア(Wikipedia)』
Eclipse OpenJ9
開発元
最新版
0.30.0[1] / 2022年1月28日 (2年前) (2022-01-28)[1]
リポジトリ github.com/eclipse/openj9
プログラミング
言語
対応OS
種別 Java仮想マシン
ライセンス
公式サイト www.eclipse.org/openj9/
テンプレートを表示

IBM J9は、IBMによって開発されたJava仮想マシン。同社のWebSphere製品や、DB2製品の標準VMとして利用されている。IBMは元々Java2対応のJDKを提供しており、チューニングされたclassic VMを同梱していたが、Java 5準拠のJDKを提供するにあたって新たにVMを開発し、IBM J9 VMと命名した。

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

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からの単体ダウンロードも可能となっている[5][6][7]
OpenJDK
OpenJDKディストリビューションの一つであるAdoptOpenJDKがOpenJ9ビルドを配布していた[6]。2021年、AdoptOpenJDKはEclipse Adoptiumへ移行し、それにともないOpenJ9ビルドの提供を終了した[8]
IBM Semeru Runtimes
AdoptOpenJDKによるOpenJ9ビルド提供終了を受けて、IBMはOpenJDKのOpenJ9ビルドSemeru Runtimesを提供開始した[8][9]

脚注

[編集]

外部リンク

[編集]
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy