3

開発モードでjspとサーブレットを使用しているときにメモリリークが発生する可能性のある方法を誰かが説明できますか?

の使用を開始した後、pergemnスペースの例外が発生し jsp&servletsます。

eclipse.ini私が与えたメモリ仕様:

-Xms1024m
-Xmx1024m
-XX:MaxNewSize=448m 
-XX:NewSize=448m 
4

2 に答える 2

1

これは、接続を作成していて、プロジェクトを再デプロイするときに接続リソースが解放されていない可能性があります。これは、permgem例外の問題の1つである可能性があります。

于 2013-01-24T07:28:42.130 に答える
1

これに関するいくつかのコメント/提案があります。

  1. permgenスペースの例外が発生しています。このエラーを理解するには、Javaメモリモデルとpergenスペースの使用方法を少し理解する必要があります。これに関する簡単な概要については、このリンクをチェックしてください。
  2. 基本的には、割り当てられたオブジェクトがガベージコレクタによって再利用されないヒープスペース内の領域です。この領域には特定のオブジェクトタイプが割り当てられています(クラスローダー、リテラルプールなど)。
  3. JVMが使用するPergenスペースは、起動時に指定できます。指定しない場合は、デフォルト値が使用されます。
  4. アプリケーションのメモリプロファイルを作成することをお勧めします。メモリプロファイリングは、実際のヒープ使用量に関する優れた洞察を提供します。作成されているオブジェクトのタイプと数を確認してから、これを実行しているコードまでトレースできます。
  5. 市販のプロファイリングツールやペンソースプロファイリングツールがたくさんあります。あなたはそれらのいくつかを試すことができます。JDKにバンドルされているVisualVMがあります。
  6. 最後に、JVMに適切なメモリ設定を設定することは、常に演習を調整することです。すべてに適合する1つのサイズではありません:)そしてプロファイリングはアプリケーションを調整するために非常に重要です。
于 2013-01-24T08:21:02.810 に答える