私が取り組んでいるプロジェクトがあり、今日まですべてが順調に進んでいました。1 つの Java クラス ドキュメントに 6000 行近くのコードがあります。コードに IF 句をもう 1 つ追加しようとすると、クラスが呼び出されたときにプログラムが例外をスローします。クラスに配置しようとした追加のスニペットはすべて、呼び出されたときにクラスが失敗する原因となります。正常に動作することがわかっているテスト コードを追加しようとしましたが、それらはすべて強制終了アラート ダイアログをスローします。クラスに配置しようとしている最後のスニペットに問題はないと信じてください。最後の「if」スニペットを取り出したら、エラーはありません。誰もこれを見たことがありますか?クラスが呼び出されると、エミュレーターで例外がスローされます。強制終了警告ウィンドウが表示されます。Java ファイルのサイズは次のとおりです: 172,503 バイト よろしくお願いします!
4 に答える
次の設定を使用して同じものを変更できます。
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx512m
しばらく前にその問題に遭遇し、メソッドの制限を超えない限り、1 つのクラスに 50k 行以上のコードが含まれていても問題ないことがわかりました。
実際にバイトコード サイズを引き起こす単一のメソッドの内容に応じて、コード/メソッドの 2 ~ 3k 行の間に制限がありました。
追加した:
ちなみに、ある時点で、コード全体がコンパイルできないほど大きくなると、Eclipse がクラッシュします。Eclipse のメモリを 1 Gb 程度に増やしてください。これまでのところ、合計で約10万行のプロジェクトには十分でした...
Eclipse Java 文書に入れることができるコードの行数に制限はありますか?
正確ではありません。
コンパイルされたメソッド内のバイトコードの数などには制限がありますが、これらは Eclipse ではなく Java クラスファイル形式 (つまり JVM 仕様) によって課せられます。
if
Eclipse がより多くのメモリを必要とする可能性もありますが、単一のステートメントを追加しても確実にこれがトリガーされるとは思いません。(もしそうなら、例外はあなたがメモリ不足であることをあなたに伝えます...)
私は以前にこれに気づきました.EclipseはJava自体から実行されるため、非常にRAMを集中的に使用します.コードが多すぎて、割り当てられる以上のものが必要になると、クラッシュします.