Jacob内存溢出问题,已经CPU爆满问题

来源:互联网 发布:lte中mr优化案例 编辑:程序博客网 时间:2024/06/14 10:52
背景:


有个项目在系统后台用Jacob调用Word进程的API做doc文件处理。在进行压力测试的时候,发现运行一段时间后,内存占用奇高,大约7.4G。由于JVM占用内存限制为2G,因此怀疑多出来的内存应当是Jacob泄露的。






在网路上搜索解决办法,都是要这样调用




[java] view plain copy 在CODE上查看代码片派生到我的代码片
ComThread.InitSTA();  
  
// do something  
  
ComThread.Release();  


但是在项目中,使用了线程池进行DOC文件处理,也就是同一时间,会有多个WORD进程在跑,使用ComThread.InitSTA();之后,Jacob仅允许线程池里面的一个线程执行,其他线程都被锁住。






最后修改成ComThread.InitMTA(true);来初始化,经过24小时压力测试,可以同时有多个WORD进程运行,另外也解决了Jacob内存溢出问题。
0 0
原创粉丝点击