3

大きなループがクロムをクラッシュさせ、100,000回以上反復しますが、各反復には2番目の遅延があるため、ループが完了するまでに1日かかります(はい、このサーバー側で実行する必要がありますが、このアプリはホストされていません)。

基本的に、このループは大きな文字列を作成して csv にダウンロードしようとしていましたが、そこまで到達することはなく、9,000 マーク付近でクラッシュしました (ターゲットの近くにはありませんでした)。

  1. 反復が 5000 で完全に割り切れるかどうかを確認してから、ファイルをダウンロードし、変数を空にリセットしてから 5001 に進みました。

  2. 文字列をhtmlとしてブラウザに保存しようとしました。次に、繰り返しが5000で完全に割り切れる場合、div htmlをクエリしてcsvをダウンロードし、divをクリアします。

どちらのソリューションでも、最終的にクロムがクラッシュします。

これは、メモリの制限に達しているためだと思います。私の質問は、javascript でメモリをクリアする方法はありますか? (5000に到達してからクリアできるように?)または少なくとも特定のことのメモリをクリアしますか?(私がリセットしている変数など)。

クラッシュは特に役に立たず、単に「おっと、何かがおかしい」と言うだけです

私はここで立ち往生しています、どんな解決策も素晴らしいでしょう!

4

2 に答える 2

0

このブラウザをクローラーとして使用されていることは理解しています。大きなループでは、このコンポーネントの問題は、後続のページ読み込み間の時間間隔です。正確な原因はわかりませんが、次の読み取りの前に、通常は 2 ~ 5 秒待機するように解決します。この時点で、(ログの後) ブラウザが表示され、コンポーネントを最後まで読み取り、次のページの前にメモリを解放する準備をします。TChromium コンポーネントを使用しています。

于 2018-10-23T09:14:19.533 に答える
-2

このリンクを試してください

http://theotakukid.com/2011/04/how-to-purge-your-chrome-memory-from-sluggish-performance/

または

また、Chrome の履歴を削除してブラウザを再起動することもできます。これは、このショートカット :ctrl+H を使用して履歴を削除することもできます。

于 2013-10-15T04:12:22.453 に答える