Microsoft.FSharp.Control.Mailbox でメモリリークが発生していますか? 質問する

Microsoft.FSharp.Control.Mailbox でメモリリークが発生していますか? 質問する

私は現在、長時間実行されるサービス (F# を使用) でメモリ リークを探しています。これまでに見た唯一の「奇妙な」点は次のとおりです。

  • 私は、QueueChannelCommands という代数データ型を持つサブシステムで MailboxProcessor を使用します (多かれ少なかれ、Add/Get コマンドの集まり - 一部には AsyncReplyChannels が添付されています)
  • サービスをプロファイルすると (Ants Memory Profiler を使用)、前述のタイプの配列のインスタンスが表示されます (ほとんどは長さが 4 ですが、増え続けています)。これらはすべて空 (null) で、その参照は Control.Mailbox によって保持されているようです。ここに画像の説明を入力してください

私のコードでは、このような動作の理由がわかりません(Mailboxの例でよく見かける標準的なコードです。ループが とlet! = receivematch終わり、return! loop()

これまでにこのような動作を見たことがある人や、対処方法をご存知の方はいらっしゃいますか? それとも、これは (既知の) バグなのでしょうか?

更新: 配列の増加は本当に奇妙です - 適切に使用されずに追加のスペースが追加されているようです:ここに画像の説明を入力してください

ベストアンサー1

私は決して F# の専門家ではありませんが、このスレッドの最初の回答をご覧いただければと思います。

Async.StartChild にはメモリリークがありますか?

最初の返信では、次のページのメモリ プロファイリングのチュートリアルについて言及されています。

しかし、彼らはF#のオープンソース版について言及している

そして、それがあなたが探しているものかどうかはわかりませんが (最後のポイントの F# のこのオープン ソース バージョンについて)、リークの原因を見つけたり、実際にメモリがリークしていることを証明したりするのに役立つかもしれません。

それが何らかの助けになれば幸いです。

トニー

おすすめ記事