Eclipse Memory Analyzer Tool (MAT)でサーバーのクラッシュとメモリリークを防ぐ

目次

Eclipse Memory Analyzer Tool (MAT)でサーバーのクラッシュとメモリリークを防ぐ

Eclipse Memory Analyzer Tool (MAT)でサーバーのクラッシュとメモリリークを防ぐ

今日の企業は、かつてないほど高性能なインメモリ・アプリケーションに依存している。BI/アナリティクス、SaaS、セールス・マーケティング・オートメーション、仮想化、リアルタイム・コラボレーション、Web 2.0、ソフトウェア製品エンジニアリング・ツールのいずれを使用する場合でも、ビジネス上の重要な質問には瞬時に回答することが求められます。そのためには、メモリを分析することが非常に重要なタスクとなる。

トランザクション(OLTP)と分析(OLAP)データ管理システムの境界がますます曖昧になるにつれ、データベースを分離する傾向がなくなり、メモリ分析を複雑で混乱したものにしています。また、コード開発時に、実際の本番環境でアプリケーションのメモリ使用量を評価することは困難です。コードだけでは、どのオブジェクトがより多くのメモリーを消費するかを把握するのにあまり役に立ちません。高度な診断機能を持つためには、開発者はコードを書く時点でガベージ・コレクションを意識する必要がある。例えば、ログインしているユーザーとセッションIDのデータを格納するオブジェクト "userMap "の配列があるとしよう。この配列の場合、コード内で未使用の配列オブジェクト参照を削除するのを忘れると、これらのオブジェクトによって消費されたメモリが回収されず、メモリ不足の状態やサーバーのクラッシュを引き起こす可能性がある。

ガベージ・コレクター(GC)のようなツールは、自動化されたメモリー管理を提供する。オブジェクトがガベージ・コレクションの対象となるのは、どのスレッドもそのオブジェクトに到達できないとき、つまりそのオブジェクトへの参照がないときだ。とはいえ、GCが未使用のオブジェクト・メモリをすべて回収できるとは限りません。このような状況では、アプリケーションのクラッシュやハングアップを引き起こすメモリ不足に陥りやすくなります。

Eclipseのオープンソースベースのメモリー・アナライザー・ツール(MAT)は、エンジニアリング製品やサービス設計において、厄介なバグを追跡するために広く使用されています。ここでは、米国の大手ホームオートメーション企業との進行中のプロジェクトにおける私の経験に基づき、MATを使用する最大の利点を共有します。私たちは次のような成果を上げることができました:

  • メモリ・リークを最小のビットにまで絞り込む
  • アプリケーション・パフォーマンスの向上
  • タイミングの改善

メモリー・アナライザー・ツール(MAT)とは?

メモリー・アナライザー・ツール(MAT)は、Eclipseのプラグインで、Javaのヒープ・メモリーのトラブルシューティングを行い、メモリー・リークを発見し、メモリー消費を削減します。

メモリを分析する簡単な例を見てみよう。まずEclipseにMATプラグインをインストールする[eclipse -> Help -> Install New Software -> Give this URL:http://download.eclipse.org/mat/1.5/update-site/]

サンプル・コードではヒープ・サイズを大量に取得するため、"OutOfMemoryError "エラーが発生する。

実行設定のVM引数に"-XX:+HeapDumpOnOutOfMemoryError "を追加し、アプリケーションを実行する。ヒープ・ダンプ・ファイルが作成されました」というメッセージが表示されます。

ダムファイルをクリックすると、MATウィザードが開きます。Leak Suspects Report "を選択すると、システム概要レポートが開き、問題の可能性がある箇所が円グラフで表示されます。

MATはクラスとオブジェクトのヒストグラムも提供します。ロードされたクラスに関連するすべての情報、「スーパークラスの名前」、クラスのローダー、クラスの静的フィールド、クラスのオブジェクト、使用されたコレクションのサイズなどを提供します。

- ヒストグラムの例。

- リーク疑惑報告書の例 :

また、MATは以下のような特徴もあげている:

  • ドミネーター・ツリー最も大きなオブジェクトと、それらがどのように生かされているかを列挙する、
  • トップ消費者:最も高価なオブジェクトをクラス別、パッケージ別に分類して表示します、
  • 重複クラス:複数のクラスローダによってロードされたクラスを検出します。

メモリ・アナライザー・ツールに関するこの基本的な理解によって、Eclipse MATがメモリに関連するリークやその他のバグを追跡するために開発者にとって非常に有用であることが明らかになった。開発者は、コードを研究することでは非常に困難な根本原因を、非常に迅速に見つけることができる。まとめると、これは顧客が高性能アプリケーションに近づくのに役立つということだ。メモリ・アプリケーションを高速化する方法について、あなた自身のアイデアをお聞かせください。このトピックについてより多くの情報が必要な場合、または新しい提案をお寄せいただける場合は、marketing@einfochips.comまで電子メールをお送りください。

アヴァニ・パテルの写真

アヴァニ・パテル

アヴァニ・パテルはeInfochipsにエンジニアとして勤務。ガンジナガルのDhirubhai Ambani Institute of Information and Communication Technology [DA-IICT]にて情報技術修士号を取得。ISVのアプリケーション開発プロジェクトの成功に一貫して貢献。Java、J2EE、Struts、Spring、OO JavaScriptなどの技術に精通している。

もっと見る

専門家に相談 する

ニュースレターの購読
ニュースレター
最新情報をお届けします!ニュースレターにご登録いただき、最新のテクノロジーとイノベーションの動向をご確認ください。

レポートダウンロード

サンプルレポートのダウンロード

カタログダウンロード

今すぐ会話を始めよう

自動車ソリューションのエキスパートによる30分間のコンサルテーションをご予約ください。

今すぐ会話を始めよう

バッテリー管理ソリューションのエキスパートによる30分のコンサルテーションをご予約ください。

今すぐ会話を始めよう

産業・エネルギーソリューションのエキスパートによる30分間のコンサルテーションをご予約ください。

今すぐ会話を始めよう

自動車業界のエキスパートによる30分のコンサルテーションをご予約ください。

今すぐ会話を始めよう

専門家による30分間のコンサルテーションをご予約ください。

以下の詳細をご記入の上、サンプルレポートをご請求ください。

リファレンス・デザイン

私たちの仕事

イノベーション

変身する。

スケール

パートナーシップ

デバイス・パートナーシップ
デジタル・パートナーシップ
質の高いパートナーシップ
シリコン・パートナーシップ

会社概要

製品とIP

プライバシーポリシー

当社のウェブサイトは、お客様の利便性を向上させ、当社のサイトを改善するために、お客様のデバイスにクッキーを配置します。当社が使用するクッキーとその無効化方法については、こちらをご覧ください。クッキーとトラッキング技術は、マーケティング目的で使用されることがあります。

同意する」をクリックすると、お客様のデバイスにクッキーが配置されること、および当社がトラッキング技術を使用することに同意したことになります。クッキーおよびトラッキング技術の無効化に関する詳細および手順については、以下の「続きを読む」をクリックしてください。Cookieおよびトラッキング技術の受け入れは任意ですが、これらを無効にするとウェブサイトが正しく機能しなくなったり、特定の広告がお客様にとって適切でなくなる可能性があります。
当社はお客様のプライバシーを尊重します。プライバシーポリシーをお読みください。