2017-11-26 7 views
-1

C#(WPF)アプリケーションが膨大な量のメモリを使用しているとのタスクマネージャの問題が発生しましたが(私たちは一晩放置すると5-6GBまで見たことがあります)、Sci TechメモリプロファイラVS one)は、ピーク時に200〜300 MBを使用していると言います。タスクマネージャーは私が1.3GBのメモリを使用していると言っていますが、Sci Tech MemProfilerは〜200MBと言っていますか?

現在、問題のアプリケーションは、多くのメモリ割り当てを行い、ガベージコレクタがビジー状態にある最適化操作を行っています。

しかし、なぜ2つのメモリ使用量レポートが非常にばらつきますか?これは私たちが心配すべきものなのでしょうか?顧客は恐らくそれに気づきパニックに陥るので、問題がなければそれほど相違している理由の一番下に来て、問題があればそれを修正するのがよいでしょう。

Task Manager Reported Memory Usage

Snap Shot of memory usage from SciTech Profiler

+0

.NETアプリケーションは、管理リソースとネイティブリソースの両方を使用します。したがって、タスクマネージャが両方の合計を報告するので、2人は異なる使用法を指示することができますが、Sci Techは管理対象にのみ重点を置く可能性があります。それが報告する数字の詳細については、Sci Techの文書をチェックしてください。 –

+0

それはそれを説明するかもしれませんが、私はシステム内で管理されていないものは使用していないと思いました。 – user2939408

答えて

-1

これは何が起こっているかである場合、私はわからないんだけど、いくつかのさらなる調査の後には、.NETランタイムは、実際には非常に喜んで、将来の割り当てに使用するためのメモリ上にハングすることが表示されますOSがメモリにプッシュされるまでOSに戻すのではなく、

私たちのメモリはすべてGen#2割り当てヒープになっていましたが、CPUが多くの作業をしているので、Gen#2ガベージコレクションはアイドル時間に実行されることはありません。

したがって、マシンがGen#2 GCを実行しなければならないと判断し、多くのリソースを解放するまで、割り当ては時間とともに増加します。

それはとにかく私たちの働く理論です。

関連する問題