私のアプリケーションをプロファイルしようとしています。 -hc
RTSオプションを使用してメモリ使用量を分析すると、PINNEDとマークされたメモリが大量に検出されました。 -hy
を実行すると、メモリはARR_WORDS
とマークされます。Haskellプログラムの-hcプロファイルでPINNEDとは何を意味していますか?
hmatrixパッケージのData.Packed.Matrix
モジュールを使用して2倍の2400×2400の行列を作成し、その要素を連続したメモリに格納する必要があるため、行列があまりにも多くの領域を占有することはありません。
私の質問は:PINNED単語が実際に何を意味するのでしょうか?なぜ、どこのメモリが使われているのかについてさらに詳しい情報を得る方法はありますか?
問題のソースコード全体がon GitHubです。それに興味がある人は誰でも構いません。しかし、それは最小限の例から非常に遠いです。
https://ghc.haskell.org/trac/ghc/wiki/Commentary/Rts/Storage/GC/Pinned – Josh
これはおそらく、固定 'のByteArray#'で実装されている 'ByteString'を意味し、 – jberryman