Haskell でさまざまなアルゴリズムをいじっていると、遅延評価でよくあるように、メモリ リークのあるプログラムを作成することがよくあります。すべてのメモリを消費するプログラムはあまり楽しくありません。気がつくのが遅すぎると、プログラムを殺すのが難しくなることがよくあります。
GHC6を使用しているときexport GHCRTS='-M384m'
、私は単に.bashrc
. しかし、GHC7 では、プログラムが でコンパイルされていない限り、コマンドライン引数または で RTS オプションが与えられたときに単に失敗するというセキュリティ対策が追加されました。残念ながら、このフラグを使ってコンパイルされた Haskell プログラムはほとんどないので、この変数を設定するとすべてが失敗します ( GHC7 にアップグレードした後、すべてのプログラムが突然失敗して、「ほとんどの RTS オプションが無効になっています。それらを有効にするには -rtsopts とリンクしてください。 " )。-rtsopts
GHCRTS
GHC7を使用する方法GHCRTS
、またはプログラムがすべてのメモリを使用するのを防ぐ別の便利な方法はありますか?