問題タブ [openj9]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 非標準の Java インストールによって、デフォルトのロケールが正しく報告されない
インストールされているバージョンの JDK を使用すると、デフォルトのシステム ロケールは正しく報告されますが、 を使用するとadoptopenjdk-11
tar.gz
、常に次のように報告されます。en_US
adoptopenjdk11
これは、ダウンロードして抽出したものと比較した Homebrew インストールの例です。
各JDKのバージョンをここに示します。
/usr/bin/java
Javaがたまたまインストールされているかどうかに関係なく、シンボリックリンクされたJavaバイナリが常にそこにあるため、macOSは何らかの魔法を行っていると思います。
Hotspot (Oracle) バージョンは正常に動作しますが、openj9 (IBM) バージョンは動作しません。
JRE をアプリケーションと一緒にインストーラーにバンドルし、非標準の場所にインストールする必要があります。
ダウンロードした openj9 tar でデフォルトのロケールを取得して、現在のシステムのロケールをミラーリングするにはどうすればよいですか?
openj9 - 異なるアプリケーション間で OpenJ9 クラスを共有する
OpenJ9 のクラス共有機能を使用して、異なるアプリケーションの単一インスタンスのメモリ使用量を削減することは可能ですか?
詳細:
この機能は、同じマシン (Kubernetes ノードなど) で同じアプリケーションの複数のインスタンスを実行する際のメモリ使用量を削減するように設計されているようです。あれは正しいですか?
私が達成したいのは、偶然にも同じ Kubernetes ノードで開始されたアプリケーションが同じキャッシュを使用することです。アプリケーションはほぼ同じライブラリを使用しているため、共有できるデータの量は少なくないはずです。ただし、私が経験したのは、古いクラスの割合が高いキャッシュであり、1GB のソフト制限とハード制限を使用しているにもかかわらず、キャッシュが 100% いっぱいになることさえあります。
具体的にはjava -Xshareclasses:cacheDir=/openj9cache,groupAccess,name=somename,nonfatal,persistent,verbose -XX:SharedCacheHardLimit=1g -Xscmx1g <APP>
、同じ Kubernetes ノードでさまざまな展開に使用してみました。実行しているアプリケーションに応じて、次のようなキャッシュ統計が表示されます。