2017-01-03 22 views
-3

我試圖將我的記錄導出到excel並在Windows 8操作系統中部署導出的元素。我可以在任務管理器中看到內存減少的細節。但是我在Windows 2008服務器操作系統中使用了相同的代碼。處理導出的元素後沒有內存差異。我可以使用下面的代碼清除垃圾收集器。Windows 2008服務器和Windows 8.1操作系統的垃圾收集器性能有任何區別嗎?

ExportedElement = null; 
GC.SuppressFinalize(obj); 

能否請您提供這個變化的原因,如果有人知道這件事嗎?

+1

的問題是無關緊要的。你不應該在.NET中將事物設置爲null,並且'SuppressFinalize'與調用垃圾收集器無關。你試圖「幫助」太多。讓垃圾收集器做它的事情。 –

回答

0

是的,不同的windows平臺和.NET框架之間的垃圾收集行爲存在差異。

不,GC.SuppressFinalize()只是建議CLR在收集對象時不要調用對象的終結器。該方法既不會強制垃圾收集,也不會阻止收集特定的對象(或者您對'clear garbage collector'的意思)。

如需進一步信息,我建議閱讀Microsoft文檔: https://msdn.microsoft.com/en-us/library/ee787088(v=vs.110).aspx