iTextSharp中的内存泄漏

时间:2014-04-07 02:39:56

标签: c# memory-leaks itextsharp memory-leak-detector

在我们的软件中,我们使用iTextSharp生成付款支票簿 在某些情况下,我们需要一次生成10 000个文件,我们在Windows服务下运行它,然后,我们遇到了以下问题: 生成完成后,服务的RAM非常大,通过我们调用GC.Collect并释放所有变量。

我花了一天时间来解决它,最后我发现:iTextSharp中的 FontFactoryImp 类有一个哈希表名称​​ fontFamilies ,它拥有许多内存而且永远不会被释放。详细地说,我发现它有许多重复的值!所以,我通过

清除哈希表来解决它
iTextSharp.text.FontFactory.FontImp = new iTextSharp.text.FontFactoryImp();
GC.Collect(GC.MaxGeneration);

一切都很好,但看起来像是作弊。

问题是:我的解决方案有任何错误或风险吗?

0 个答案:

没有答案