![使用 OO(soffice)作为批量转换服务的内存问题](https://linux22.com/image/1297881/%E4%BD%BF%E7%94%A8%20OO%EF%BC%88soffice%EF%BC%89%E4%BD%9C%E4%B8%BA%E6%89%B9%E9%87%8F%E8%BD%AC%E6%8D%A2%E6%9C%8D%E5%8A%A1%E7%9A%84%E5%86%85%E5%AD%98%E9%97%AE%E9%A2%98.png)
我有一个 Java Web 应用程序,它使用以无头模式启动的 OOo 实例(在同一环境中)作为批量转换器。
- 环境是RHEL 5.5。
- OpenOffice版本是3.1。
我进行了一些测试,发现在大约 1000 次转换之后,soffice 进程的常驻内存大约占总内存的 99%。OpenOffice 最终崩溃了。
我会将此服务器用作文档的批量转换器,但此内存问题需要根据我们拥有的中等数量的转换请求每天重新启动。
我知道这个内存问题从版本 2 开始就影响着 OO。我想知道是否有解决方案,或者使用 Windows Server 而不是 Linux 是否可以解决问题。
谢谢。
答案1
您可能感兴趣“OpenOffice 服务器守护进程”。
通过管理转换,您可以:
- 在转换过程中通过并行化利用多线程的优势
- 在发生崩溃时和/或在预定义次数的转换后重新启动每个 soffice 进程,以减少内存泄漏的影响
好的一点是您不必修改任何代码,服务器的接口与 OO 的接口相同。