1

Eclipse で App Engine Java アプリケーションを作成しています。これまでのところ、データストアと JDO をいじっているだけで、アプリケーションは深刻なことは何もしていません。しかし、約 1 時間の開発の後、java.lang.OutOfMemoryError エラーが発生します。

このエラーは、何らかのメモリ リークが原因である可能性が高いと読みました。テストのために、少し速度を上げてエラーを強制的に表示しようとしました。wget を使用して、Eclipse での開発時と同じ URL に対して約 3000 のリクエストを作成しました。しかし、何も起こりませんでした。本当にメモリリークがあったとしたら、このように見えると思います...

このエラーが本当に開発プロセスによって引き起こされている可能性はありますか? 私はappengine-web.xmlに触れることでトリックを使用するので、ファイルを変更して保存するたびに、サーバーはすべてのファイルを再度ロードし、DataNucleusエンハンサーを実行します...非常に頻繁に発生しますが、これが理由でしょうか?

もう1つのことは、 Persistence Managerを操作するために次のソリューション(JDO永続マネージャーの使用方法)を実装した後におそらく開始したことです。リクエスト中にPMへの参照をいくつかの場所に保存しますが、リクエストが正しく終了した後にすべて破棄する必要がありますか? 繰り返しますが、これが原因である場合、3000 リクエスト後にエラーが発生するのではないでしょうか? (これは、開発の 1 時間よりもはるかに多くの要求です)。

4

1 に答える 1

0

この質問を未回答のままにしたくないので、これは質問の下のコメントから抽出されます。

はい、PermGen エラーは、開発プロセス中の頻繁な再デプロイによって発生する可能性があります。したがって、アプリでメモリ リークが発生する必要はありません。

于 2012-08-08T11:58:46.457 に答える