2016-01-04 5 views

答えて

19

デフォルトでは(フラグなし)、GHCはすべてのHaskellスレッドが0.3秒間アイドル状態になっていればガベージコレクション(GC)を実行します。ビルドシステムは外部プロセスを定期的に実行しているので、すべてのHaskellスレッドが0.3秒以上アイドル状態になるのはよくあることであり、不要なガベージコレクションが多く発生します。マシンはShakeが動作しているプロセスから完全にロードされる可能性があるので、GCは時間がかかり、そうしなければ有用な作業を行うことができます。 GCがマルチスレッドで動作する場合、問題は悪化します。

+2

もっと一般的には、アイドルガベージコレクションは、主に*インタラクティブ*アプリケーション用であり、問​​題のアプリケーションがメジャーコレクション内の他の多くのスレッドを遅延させる可能性が高い同時発生状況のためです。 – dfeuer

関連する問題