Microsoft 数日前にそのニュースをリリースしました そのツール«GCToolkit»のソースコードをリリースしました、これは、すべてのGCToolkitコードを使用してJavaガベージコレクションログファイルを解析するためのライブラリのセットです。 利用可能です MITライセンスの下でGitHubで。
GCToolkitは、XNUMXつのJavaモジュールで構成されています API、GCログファイルパーサー、およびJVM上で応答性の高いアプリケーションを構築するためのVert.xツールキットベースのメッセージバックプレートについて説明します。 このユーティリティを使用すると、ユーザーは、JVM内の管理対象メモリの状態の任意の複雑なスキャンを作成できます。
名前が示すように、これはJavaガベージコレクション(GC)ログファイルを解析し、それらを個別のイベントで解析するためのライブラリのセットです。 APIを公開してエンゲージメントを向上させる ツールキットとデータ集約により、これは ユーザーがJVMの管理対象メモリの状態の任意の複雑な分析を作成できるようにします。
チームによると、これはGCToolkitのユーザーエントリポイントであり、いくつかのメソッド呼び出しで内部モジュールの詳細を非表示にします。 APIに加えて、他にXNUMXつのモジュールがあります:解析モジュール およびVert.x。 パーサーモジュールは、以下に記述された正規表現とコードのコレクションに基づいています。 利用可能な最も堅牢なGCログアナライザーと見なされます。
に基づくメッセージングバックエンド Vert.xはXNUMXつのメッセージバスを使用します。 前者はデータソースからデータを送信します。 現在の実装では、GCログファイルからログ行を渡します。 このバスのコンシューマーは、データソースからのデータをGCサイクルまたはセーフポイントを表すイベントに変換するアナライザーです。 これらのイベントは、XNUMX番目のメッセージバスであるイベントバスで公開されます。 その後、イベントバスのサブスクライバーに通知して、関心のあるイベントを処理できます。
パーサーは個別のJVMイベントを発行します、これらのイベントからデータをキャプチャして分析するコードを記述できます。 GCログファイルのデータキャプチャと分析を容易にするために、GCToolkitは単純な集約フレームワークを提供します。 ユーザーがキャプチャしたいデータの種類または実行したい分析の種類は、ユーザーの裁量に委ねられています。 たとえば、一時停止イベントをキャプチャしてヒープ占有率を分析するために、アグリゲータはイベントをキャプチャし、関連データを抽出して、データをアグリゲーションに渡します。
これにより、データが意味のある分析にまとめられます。たとえば、ガベージコレクション後の合計ヒープ占有率などです。 結果のデータは、グラフ、表、または別のよりユーザーフレンドリーな形式で表示できます。 さらに重要なことに、チームによると、最適ではないコレクター構成では、エンドユーザーエクスペリエンスを低下させながら、より多くのCPUとメモリを必要とするアプリケーションが作成されます。 言い換えると、コレクターの調整が不十分であるということは、多くの場合、より高価なランタイムと不満のあるユーザーを意味します。
マイクロソフトのJavaプラットフォームへの関心の高まりとともに、 フォーカス オープンソースでは、Javaコミュニティのメリットも増えています。 macOSM1とWindowsto Armの移植に多大な貢献をした後、Microsoftは、独自のバージョンのOpenJDKを導入し、Eclipse Adoptiumワーキンググループ(旧称AdoptOpenJDK)に参加することで、OpenJDKへの取り組みを再確認しました。
GCToolkitをオープンソースにすることで、 Microsoftは、JVMがGCを処理する方法についてJVMの内部を確認するためのより良い方法を提供しようとしています。 およびメモリ割り当て。 可視性が向上すると、構成が向上し、アプリケーションのエンドユーザーとその管理を担当する技術者の両方にメリットがあります。
シンプルなAPIと使いやすい出力メカニズムは、データを分析、抽出、視覚化するためのさまざまなメカニズムを提供することにより、GCログを読み取るタスクを改善することを約束します。
出典 https://devblogs.microsoft.com