Crystal Report 内存泄漏
公司历史遗留项目,遇到内存泄漏
使用.net memory profile检查,它说是ReportDocument类中有EventHandler没有释放导致内存泄漏
用Reflector看ReportDocument里,自己写的事件只有个init啥啥啥的,也没有找到注册其他事件的地方
只知道责任在crystal report.....
然后网上不断翻找,不断修正关键字(得知有许多人和我有一样的烦恼),找到如下文章
(针对2003)
http://www.arquitecturadesoftware.org/blogs/hugobatista/archive/2006/02/22/236.aspx
(针对2005)
http://www.arquitecturadesoftware.org/blogs/hugobatista/archive/2006/05/23/328.aspx
应该是有用的
但是,新的问题是,使用OpenSubreport打开的子报表要怎么办...
update:
貌似subreport打开的对象不用去担心...
运行后,内存泄漏显然依然存在
使用.net memory profile检查,它说是CrystalDecisions.CrystalReports.Engine.FormatEngine类中有PrintPageEventHandler没有释放...
寻找是注册在哪里的...
update 2:
继续跑了18个小时了,内存下来了,稳定在90MB以内,看来是成功了
update 3:
以上链接已经都打不开了...
http://scn.sap.com/thread/1979619 这个链接里还能看到原型,但是没有区分2003和2005的注意事项了
以及,这么长久以来,其实还是有觉得内存有泄漏,从90到200大约需要4天时间,每天涨幅在15~25左右
项目升级到.net3.5后,从140m起跳,又做了一些改进后, 每天仍然有<10m的上升