5
なぜAsp.netコアがゴミを収集していないのか分かりません。先週、Webサービスを数日間実行させ、私のメモリ使用量は20GBに達しました。 GCが機能していないようです。だから、これをテストするために、大量の文字列を返す非常に単純なWebメソッドを書きました。アプリケーションは124MBしか使用していませんでしたが、Webメソッドを呼び出すたびに、メモリ使用量は411MBに達するまで高まりました。私がウェブメソッドを呼び出し続けていれば、それは高くなっていたでしょう。しかし、私はテストをやめることに決めました。Asp.netコアがゴミを収集していません
GCが動作していない理由を誰もが知っていますか?パフォーマンスモニタからわかるように、GCが呼び出されました(グラフの黄色のマーカー)。しかし、それはメモリからゴミを収集しませんでした。私は、GCがそれを参照していないものを熱心に収集すると思うだろう。
ご援助をよろしくお願い申し上げます。ありがとう! :)
ガベージコレクションの適切なテストではないと思います。原因.netは、メモリが必要なときにメモリにヒープを作成します。しかし、それが収集されても、すぐにヒープが減少するわけではありません。それは時間の経過と共にそれを行います。ヒープを解放する理由は、作成に比べてリソースの消費量が多いことです。ただし、複数回呼び出すときに同じヒープを再利用する必要があります。あなたは非同期なしで試すことができますか?何が起こっているのかを見るだけですか? –
こんにちは@HenrikBøgelundLavstsen、私は非同期Webメソッドを削除して、再度テストしますが、今度は同期メソッドです。私はまだ同じ記憶問題を抱えています。したがって、非同期の問題のようには見えません。あなたが言ったように、すべての呼び出しで同じメモリスペースが再利用されているはずです。すべての呼び出しでメモリ使用量が増えます。これは少し戸惑うものです。 – Zorthgo
私はIISとKestrelの両方でもテストしました。残念ながら、彼らはどちらも同じ動作を示しています。 – Zorthgo