URL のリストを調べて、それらのホームページの内容を分析しようとしています。これを行うには、URL を取得してパーサー クラスに送信して解析するレデューサーのない Hadoop マッパーを使用します。
パーサーは、Jericho の html パーサーのストリーミング ソース クラスを使用して、ページのコンテンツを読み取ります。実際には、バッファリングされたリーダーを使用して、上記のページのコンテンツを取り込みます。ストリーミングされたソースとバッファリングされたリーダー クラスの両方の close メソッドを呼び出すようにしました。その後、マッパーはパーサーの toString メソッドを呼び出し、次の URL に進みます。
メモリを簡単に分析したところ、ガベージ コレクタが追いつかないファイナライズ オブジェクトのヒープがあることがわかりました。の信頼性について悪いことを聞いたSystem.gc()
ので、ファイナライズ オブジェクトのこの巨大なヒープを取り除くための別のよりクリーンな方法があるかどうか疑問に思っています。