当前位置:  开发笔记 > 运维 > 正文

.Net 3.5中是否存在XMLSerialization的已知内存泄漏?

如何解决《.Net3.5中是否存在XMLSerialization的已知内存泄漏?》经验,为你挑选了1个好方法。

Tess Ferrandez撰写的这篇文章http://blogs.msdn.com/tess/archive/2006/02/15/532804.aspx概述了为什么使用XMLSerialization会导致内存泄漏.

泄漏是由于对象如何在内存中实例化为程序集而不是对象,因此不是垃圾收集器的目标.

该文章最初是在1.0/1.1 CLR上编写的,但有关2.0 CLR的更新尚不清楚.

我在一个仍处于测试阶段的Web应用程序中广泛使用XMLSerialization/Deserialization进行UI /服务器交换.对象只是DTO(仅具有属性的对象).

先感谢您!



1> JaredPar..:

实际导致泄漏的部分是由XML引擎生成的用于序列化目的的程序集不会被收集.从CLR 2.0SP1(.Net 3.5)开始,情况仍然如此.将程序集加载到进程后,在卸载包含该程序集的AppDomain之前,不会删除它.

如果你注意到文章的底部,她提到了一种让XML引擎重用程序集的方法,这样内存就不会失去控制.

推荐阅读
mobiledu2402851203
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有