「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Java EpsilonGC を使用してメモリ割り当てを確認します。

Java EpsilonGC を使用してメモリ割り当てを確認します。

2024 年 11 月 8 日に公開
ブラウズ:888

Using Java EpsilonGC to look at memory allocation.

この記事で参照されているコードは、Epsilon GC に関する Oracle ブログで入手可能なサンプル コードから引用されています。

この記事では、Epsilon GC として知られる Java ガベージ コレクション (GC) の特に興味深いオプションについて説明します。このガベージ コレクション アルゴリズムは、ガベージ コレクションを実行しないという独特の機能で注目に値します。 Epsilon ガベージ コレクター (GC) は JDK 11 に含まれていました。

しかし、ガベージ コレクターが収集しないのに何の役に立つのでしょうか? (居候か!!)

いいえ、これは実際には非常に便利です。Oracle ブログで提供されているユースケースの 1 つで、より役立つように少し拡張しました。

詳細については、元のブログ投稿を参照してください:
https://blogs.oracle.com/javamagazine/post/epsilon-the-jdks-do-nothing-garbage-collector

使用例: Epsilon GC は、プロファイリング ツールを使用せずにコードの特定セグメントのメモリ割り当てを評価する必要がある開発者にとって有益です。

主な課題 従来のガベージ コレクターは、オブジェクトを継続的にクリアすることにより、正確なメモリ使用量のメトリクスを不明瞭にする可能性があります。この干渉により、コードの実際のメモリ消費量を確認することが困難になります。

Epsilon GC は、非コレクターとして機能することでこの問題に対処します。それ自体はガベージ コレクション アルゴリズムではありませんが、ガベージ コレクションの実行を控えることでメモリ割り当てを理解するためのツールとして機能し、それによってメモリ使用量を明確に把握できます。

: Epsilon GC はメモリを再利用しないため、過剰な割り当てにより JVM で OutOfMemoryError (OOM) が発生する可能性があることに注意することが重要です。

以下は、Epsilon GC の有効性を実証するために使用されるサンプル コードです。:

public class EpsilonDemo {

    public static String formatSize(long v) {
        if (v 



期待
このコードは、80MB のバイト型オブジェクトを割り当てます。コードを実行すると、print ステートメントでも同じことが観察できるはずです。

EpsilonGC の有無にかかわらずコンパイルされたバージョンを実行します:

  1. G1GC で実行:
java -Xms100m -Xmx100m -XX: UseG1GC  EpsilonDemo
Starting allocations...
*** Free MEM = 102.2 MB
Completed successfully
*** Free MEM = 74.2 MB

G1GC では、28 MB 使用率という誤った割り当て状況が表示されます

  1. EpsilonGC で実行:
java -Xms100m -Xmx100m -XX: UnlockExperimentalVMOptions -XX: UseEpsilonGC EpsilonDemo
[0.004s][warning][gc,init] Consider enabling -XX: AlwaysPreTouch to avoid memory commit hiccups
Starting allocations...
*** Free MEM = 99.4 MB
Completed successfully
*** Free MEM = 18.7 MB 

ここでは 80.7 MB の使用率がはっきりとわかります

これが、コード内のメモリ使用パターンを見つけるのに EpsilonGC がいかに便利であるかを理解するのに役立つことを願っています。乾杯! ?

リリースステートメント この記事は次の場所に転載されています: https://dev.to/vishalendu/using-java-episilongc-to-look-at-memory-allocation-50bi?1 侵害がある場合は、[email protected] に連絡して削除してください。それ
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3