常见问题

您当前所在的位置:首页 > 新闻中心 > 常见问题
XslCompiledTransform类引起的内存泄漏问题

发布时间:2010-09-30 来源: 作者:admin

   我们可以通过XslCompiledTransform类使用XSLT样式表转换XML数据,但我在项目中使用此类的时候发现有内存泄漏(Memory Leak)现象,长时间不能进行回收的内存最终导致内存溢出的异常(Exception: Out Of Memory, OOM)发生。

    原来,XslCompiledTransform类使用CodeDom将XSL以及其中的脚本编译到.NET程序集中,并将其加载到当前的应用程序域(AppDomain),所以也就需要占用内存。如果每次进行XSL转换的时候都重新加载XSL以及脚本就会导致内存不断增加,直到发生内存溢出的错误。

      解决的办法是我们用全局的Hashtable变量将其进行缓存,即可解决问题。P.S:多次使用XSL转换的时候记得要通过XslCompiledTransform.TemporaryFiles.Delete()方法进行清除。

参考资料:
Resource Leak from XslCompiledTransform
http://www.cnblogs.com/cnzc/archive/2007/02/02/638268.html

    在一些文章里推荐使用单件模式,这样会频繁进行加载和转换,因为加载方法不是线程安全的很可能引起错误,再者会生成很多临时问题。而根据XSL文件来决定缓存XslCompiledTransform类实例的个数将是最合适不过的方法。

   其实这不是什么内存泄漏也不是什么性能问题,而是我们对于其处理机制的不了解。以后我们就知道内存增长先检查应用程序变量和会话变量,再者要看看有没有滥用XslCompiledTransform类了。

项目需求:

您的姓名:

电话:

项目类型:

电子邮件:

描述:

关于我们 | 域名主机 | 付款方式 | 常见问题 | 常用文档下载 | 常用软件下载 | 客户建站须知 | 联系我们


太原网站建设首选品牌---三晋联盟,山西中高端网站设计网站制作公司,为中小企业提供高品质的网站建设、域名主机、企业邮箱等互联网信息化产品与服务
本站关键字: 太原网站建设/网页制作/网站推广/网络公司/山西网站制作公司/山西网站建设/山西网络公司 
友情链接: 太原网站建设     太原网站制作     太原做网站    榆次辉煌幼儿园    
Copyright  2002-2012 www.0351cn.cn All  Rights Reserved. 山西三晋联盟网络工程有限公司(简称三晋联盟)  <版权所有>
公司(总机):400-0351-114   软件开发专线:0351-5248106  网站建设专线:0351-5248107   投诉建议:0351-5248108 
三晋联盟[山西中高端网站建设第一品牌]旗下网站:
山西114网  189114商务助理
增值电信业务经营许可证(含互联网电子公告) 晋B2-20090009