回答
反射創建的對象應該如何與正常創建的對象不同?
你有這個對象的實例變量......運行時確切地知道它是什麼類型的對象,也是GC。
只有創建對象的方式不同。該對象應該與使用new MyObject()
創建的對象完全相同垃圾收集將收集任何.NET對象。它們使用反射或不反射都沒有不同。
真的非常2謝謝@@ Arjan ..如果我在我的管理代碼中使用一些第三方.dll,它由非託管代碼組成。在這種情況下,我的管理對象將調用unmanage dobject 。 CRL如何處理這種情況...... – Pankaj 2009-12-29 12:08:31
要使用.NET反射和CLR,對象需要至少有一個.NET包裝器。 GC在封裝後清理完畢,但是封裝應該自行清理,也許在終結器中...我期望這是由.NET創建的COM封裝處理的... – 2009-12-29 19:15:06
Thanks @@ Arjan。 .. – Pankaj 2009-12-30 06:12:01
任何在CLR控制下運行的代碼都是託管代碼,CLR負責管理和決定垃圾收集。 有些方法可以控制垃圾收集,但除非真的需要讓CLR來決定。
比這更復雜。 例如,搜索關於xml序列化程序泄漏內存的Tess(好MS員工)博客。 有些方法可以在代碼模式中解決這個問題。無論如何,這個xml序列化器內存泄漏問題不會被GC修復。事實上,這些類型的動態生成的dll只會在父應用程序被卸載(承載使用xml序列化程序的Web服務的IIS工作進程)時被刪除。底線:即使是.Net項目,也不要依賴所有情況下的GC。有泄漏需要解決方法代碼/代碼模式修復。
這個錯誤仍然在3.5我認爲。
更多鏈接: http://plainoldstan.blogspot.com/2011/04/wcf-memory-leak-with.html 閱讀苔絲鏈接的其它連接這裏面: Are there still known memory leaks with XMLSerialization in .Net 3.5?
- 1. 因垃圾對象引用而導致的java垃圾回收
- 2. 內部對象的垃圾回收
- 3. Ruby:標記垃圾回收的對象
- 4. 有資格垃圾回收的對象
- 5. 垃圾收集器如何確定對象是否是垃圾?
- 6. 垃圾收集對象
- 7. 如何跟蹤垃圾收集對象
- 8. JDBC垃圾回收
- 9. Java:垃圾回收
- 10. C#垃圾回收
- 11. Java:垃圾回收
- 12. Erlang垃圾回收
- 13. java垃圾回收
- 14. Python垃圾回收
- 15. JS垃圾回收
- 16. Javascript垃圾回收
- 17. PhoneGap垃圾回收
- 18. java - 垃圾回收
- 19. 查找C#垃圾回收器回收了多少個對象
- 20. Scala對象何時收集垃圾?
- 21. 如何將對象提供給python垃圾回收?
- 22. 如何清除垃圾回收對象(HashMap) - Java
- 23. context.detach - 用於垃圾回收
- 24. 垃圾收集如何在Java中使用Session對象?
- 25. Android垃圾回收器,釋放對象內的對象
- 26. 未發生自動垃圾回收
- 27. .NET垃圾回收和原生線程
- 28. 反應原生調試日誌記錄垃圾回收
- 29. 使對象明確垃圾回收的方法
- 30. 使用AutoZone垃圾回收器
您正在使用什麼語言/運行? – johannes 2009-12-29 11:48:50
咦?你可能想要包含你正在編程的語言。儘管我可以想象大多數語言的垃圾收集功能會比這更強大。 – 2009-12-29 11:49:34
C#-DotNet .... – Pankaj 2009-12-29 11:51:12