stackoverflow。我用C#編寫了一個應用程序(一個raytracer)。問題不在於raytracer,而在於ray的使用。隨着時間的推移,應用會持續消耗更多的內存使用太多內存的C#應用程序
RAM的使用,而不是光線追蹤:開始10MB爬呀爬
拉姆usege而光線追蹤:開始80MB然後120MB及以上,如果分辨率是大 這個數字高達500MB。
我看着VS診斷工具,並看到應用程序垃圾收集就像10分鐘在1 gc。這個數字更大,而應用程序是光線追蹤。光線追蹤器返回一個巨大的像素數組。在光線跟蹤之後,我將pixel array設置爲null,但應用程序RAM在500-600 mb ram範圍內。
是否有任何選項可以收集更多的垃圾或免費公羊?
編輯 這是一個WinForms應用程序,而不是WPF或其他東西。
爲什麼500MB _too much_?當它有用時它會將mem返回給系統。你正在看錯號碼。 –
即使在光線追蹤500mb仍然存在於程序存儲器中之後,500mb的光線追蹤並不多。 –
@Yahya Gedik,使用內存分析器,例如[dotMemory](https://www.jetbrains.com/dotmemory/)獲取更多詳細信息。你可能有內存泄漏。 –