現在、長時間実行されているサービス (F# を使用) でいくつかのメモリ リークを探しています。これまでに見た唯一の「奇妙な」ものは次のとおりです。
- QueueChannelCommands という名前の代数データ型を持つサブシステムで MailboxProcessor を使用します (多かれ少なかれ一連の Add/Get コマンド - AsyncReplyChannels が添付されたものもあります)
- (Ants Memory Profiler を使用して) サービスをプロファイリングすると、言及されたタイプの配列のインスタンスが表示されます (ほとんどの長さは 4 ですが、成長しています) - Control.Mailbox によって参照が保持されているように見えるすべての空 (null):
私のコードには、この動作の理由がわかりません (標準コードは、そこにあるすべての Mailbox-example で見つけることができlet! = receive
ますmatch
。return! loop()
誰もこの種の動作を見たことがありますか、またはこれを処理する方法を知っていますか? それとも、これは (既知の) バグですか?
更新:配列の成長は本当に奇妙です-適切に使用されていない追加のスペースが追加されているようです: