c# - 垃圾收集 C# 应用程序使用过多内存

  显示原文与译文双语对照的内容
98 4

stackoverflow,我在 C# ( 光线跟踪器) 中编写了一个应用程序。问题不是光线跟踪器,而是射线使用。应用程序不断消耗更多内存。

在不跟踪光线跟踪时使用内存:从 10mb 开始向上和向上

跟踪时的Ram usege: 启动 80mb 到 120mb 和上升,如果分辨率大于,则这里数字最大为 500 mb 。

我查看了 vs 诊断工具,并看到应用程序垃圾收集在 1分钟内就像 10 gc 。这个数字在应用光线跟踪时更大。光线跟踪器返回一个巨大的像素 array 。在光线跟踪后将像素 array 设置为空,但应用程序 ram stucks在 500 -600 mb内存范围内。

有什么选项可以收集更多的垃圾或者免费内存?

这是一个WinForms的应用程序,不是WPF或者其它的。

时间:原作者:0个回答

58 1

因为没有代码,我无法确定,但它好像是内存泄漏。验证没有 static 对象引用有问题的对象。为了验证,在将对象设置为null之后,运行 GC.Collect(),例如,如果垃圾回收器可以能需要一段时间。如果 GC.Collect 之后你看到内存没有被回收,你很可能会有内存泄漏。如果找不到rouge参考的位置,可以使用 this https://blogs.msdn.microsoft.com/visualstudioalm/2015/04/29/diagnosing-event-handler-leaks-with-the-memory-usage-tool-in-visual-studio-2015/tools tools tools
好运

原作者:
...