0

ユーザーがボタンをクリックするたびにサーバー上のサーブレットを呼び出すJavaクライアントがあります(リクエストを取得)。サーバーはデータベースからデータを取得し、ファイルを生成してブール値をクライアントに送り返し、ファイルが正常に作成されたかどうかを通知します。私が直面している問題は、ユーザーがボタン(クライアント側)をクリックするたびにサーバーヒープが約50 MB増加し、doGet要求が正常に処理されたときに、要求前のサイズに縮小されないことです。私は何かが足りないのですか?どういうわけかクライアントからの接続を閉じることになっていますか?doGetリクエストの処理中に作成したオブジェクトの割り当てを解除するようにサーバーを説得するにはどうすればよいですか?

どんな助けでも大歓迎です...

4

1 に答える 1

0

finalize ブロックでメモリ リソースを明示的に解放していますか? finally と finalize を賢く使用すると、余分なリソース/メモリ領域を解放するのに役立ちます。ここにコードをコピーして、メモリに関するいくつかの提案をしてください。これは、HeapSpace メモリの代わりに PermGen スペースを不必要に使用していないかどうかを修正するのに役立ちます。たとえば、 String str1= "foo"; を使用すると違いが生じます。および Vs String str2 = new ("foo");

str1 は PermGen の一部であるガベージ コレクションではありませんが、他の str2 はヒープ メモリ空間にあります。

于 2012-10-24T16:33:19.823 に答える