最火下载站首页
手机版
最火下载站
关注公众号
最火下载站

当前位置:首页 > 网络知识 > 网络编程 > ASP教程> XslCompiledTransform类引起的"内存泄漏"问题

XslCompiledTransform类引起的"内存泄漏"问题

文章作者:网友投稿 发布时间:2008-12-22 来源:网络

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

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

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

  解决的办法是我们用全局的Hashtable变量将其进行缓存,即可解决问题。

  P.S:多次使用XSL转换的时候记得要通过XslCompiledTransform.TemporaryFiles.Delete()方法进行清除。

上一篇: 由ASP语言转向ABAP开发,有没有必要?

下一篇: 实例:AjaxPro.2缺少对象错误的解决办法

共有0条评论网友评论