haskell-jp / questions #96 at 2021-04-20 15:45:41 +0900

Kazuhiko Sakaguchi
こんにちは。GHC である計算 `act :: IO ()` を走らせたときに、それによってヒープ上に確保されたバイト数の総量(の近似)を知る方法をご存知の方がいたら教えてください。最初 `GHC.Stats` の `allocated_bytes` がそれかなと思っていたのですが、`act` を実行している間に勝手に GC が走らないように `+RTS -T -I0 -A8G -G1 -m1` を渡してみたところ、最初から 8GB の領域が確保された状態になり(従って `allocated_bytes` は 8 * 1024^3 になる?)、その中でどれだけのメモリが実際に使われているかが分かりません。
Hiromi ISHII / mr_konn
関数呼び出しに対してヒープアロケーション量をはかる場合だと、ぼくはよく weigh を使いますね
https://hackage.haskell.org/package/weigh
Hiromi ISHII / mr_konn
これはたしか GHC.Stats を内部的には使って適切な処理をしてくれるんだったはず
Kazuhiko Sakaguchi
ありがとう。試してみます。