背景:
工作中需要做一个文件转换,于是经过技术调研,定了选用jodconverter作为组件,提供服务,但是底层需要依赖一个office组件,目前可选有两个, OpenOffice和LibreOffice,于是需要做性能测试和比较。
简单编写测试
- 依赖:pom.xml
<dependency>
<groupId>org.jodconverter</groupId>
<artifactId>jodconverter-spring-boot-starter</artifactId>
<version>4.1.1</version>
</dependency>
- 测试类 PDFConverterTest.java
@SpringBootTest
public class PDFConverterTest {
@Autowired
private DocumentConverter converter;
@Test
public void test1() throws OfficeException {
long start = System.currentTimeMillis();
File docInputFile = new File("");
File outputFile = new File("");
converter.convert(docInputFile).to(outputFile).execute();
long end = System.currentTimeMillis();
System.out.println("cost : " +(end - start));
}
}
通过不断切换word文件大小,运行项目输出至pdf文件,可以得到测试结果和数据
- 配置文件 application.yml
jodconverter:
enabled: true
# office-home: 'C:\Program Files\LibreOffice\'
office-home: 'C:\Program Files (x86)\OpenOffice 4'
port-numbers: 8100
max-tasks-per-process: 10
process-timeout: 10000
working-dir: "D:\\temp"
硬件配置
指标 | 参数 |
---|---|
系统 | Windows10家庭中文版 |
处理器 | Intel(R) Core(TM) i7-8550U_CPU @ 1.80GHz |
内存 | 16GB DDR4 |
硬盘 | SAMSUNG SSD_256GB |
性能测试比较
分析结果
- 同样文件的转化,样本大概取了20次,图中只展示了三次并统计平均值作为参考;
- 相同大小的文件,LibreOffice6转换速度略快于OpenOffice4,且文件越大,速度相差越大;
- 相比较,LibreOffice4转换后的文件略大于OpenOffice4,且源文件越大,相差越大;
- 连续转换能力需要再进行测试,后续补充。