2

Javaタイプのプロジェクトを受け入れ、すべてのファイルに対して何らかの解析メカニズムを実行するSWTアプリケーションがあります。正常に動作していましたが、膨大な数のファイルを持つ大規模なプロジェクトでは、エラーが発生し始めます:

Java ヒープ領域: java.lang.OutOfMemory

解析を終了します。ユーザーのマシン構成について推測せずに、Javaプログラミングでどのように処理できますか。

注:これまで、ここで1000を取るMAXサイズにまたがるプロジェクトファイルを最初に数え、50ファイルを含むフォルダーのチャンクにプロジェクトを分割し、それらを1つずつ解析するメカニズムを試しましたが、クリックされず、私は一部のフォルダーの解析後にエラーが発生しました。

4

1 に答える 1

5

Java ヒープ領域がある場合の最も現実的なアプローチ (コードの一部を共有していないため) : java.lang.OutOfMemoryは、Java アプリケーションをプロファイリングして、アプリケーションがヒープ領域を使い果たしている場所をより正確に把握できるようにすることです。 . 次に、コードを変更して、アプリケーションのメモリ使用量を減らすことができます。

YourKitVisualVMは、アプリケーションのテストに使用できる Java プロファイリング ソフトウェアの 2 つの良い例です。

さらに、プロジェクトのヒープ サイズを増やすことも、可能な解決策と見なすことができます。-Xmxヒープの最大サイズを設定する仮想マシンのオプションを再調整するだけです。

于 2012-12-20T08:01:33.240 に答える