使用aspose cells java将Excel转为PDF,这个速度太慢,需要增强服务器的哪方面性能

使用aspose cells java将Excel转为PDF,这个速度太慢,需要增强服务器的哪方面性能。

分配2G内存与4G内存感觉并没有加快速度。

@Ijiran
如果你的文件很大,增加内存和使用内存优先模式可以提高转换速度。关于内存优先模式,请参考以下文档:

如果文件不大,但是转换却很耗时,可能是由于某些问题导致的。你愿意提供你的样例文件吗?我们很快就会检查。

转成的PDF文件高达100M,使用了压缩算法

@John.He https://resource.ulike.ltd/file/document/888865666359201792/912421952740757504/OF230801-G_OF230802-G_OF230803-U_UDC22106.xlsx

@Ijiran

感谢您提供 Excel 模板文件。

我发现工作表中有很多图像文件。根据建议,加载模板 XLSX 文件时使用 MemoryPreference 模式。 使用您的 Excel 模板文件尝试以下示例代码,它占用的内存比我尝试的要少:

LoadOptions options = new LoadOptions();
options.setMemorySetting(MemorySetting.MEMORY_PREFERENCE);
Workbook wb = new Workbook("f:\\files\\OF230801-G_OF230802-G_OF230803-U_UDC22106.xlsx", options);
wb.save("f:\\files\\out1.pdf");

如果您仍然遇到任何问题,请告诉我们。

@Ijiran
通过使用样例文件进行测试,我们能够复现问题。发现使用java转换到pdf耗时大约27秒。而.net转换到pdf只需要大约5秒。应该是由图像保存到pdf的性能差距导致的。请查看附件 (45.4 KB)。

我们已经在内部问题跟踪系统中打开了以下新问题单,并将根据Free Support Policies中提到的条款提供修复。
问题单号:CELLSJAVA-45667

@Ijiran ,

你的源文件中有大量的图片,Java读写图片相对来说比较慢,excel转PDF的速度就相对较慢。在新的版本(Aspose.Cells for Java 23.11)中,我们稍微提升了一点转换速度,但输出的pdf文件的大小将控制在30多兆。

后期还会不会在这块进行一定的优化,目前的测试速度大概是多少,能否提供一下最新版的测试结果。我跟我本地的比对一下。

image.png (61.9 KB)

我在版本管理上没有看到23.11版

@Ijiran
我们计划于2023年11月上半月发布Aspose.Cells v23.11。下一个版本发布时会通知您。

能否提供一下最新版转换文件的速度,以之前发过的文件为例,需要多长时间转换完成。

@Ijiran ,

转换速度很难进一步提升,下个版本23.11大概只快了3s,但是输出pdf文件大小控制在30多兆.

好吧,请问这个优化之后还会排在计划中吗?

@Ijiran
我们会进一步研究并优化性能。一旦有更新,会及时通知你。

好的,非常感谢您的解答。

@Ijiran,

不客气。

另请注意,代码库优化始终是可能的。 一般来说,我们会在每个新版本中优化和增强源代码,并尝试减少处理大文件和图像时使用的内存量。

Aspose.Cells for Python via Java, 如果我使用这个产品,和Aspose.Cells for Java的处理方式相同吗?效率会不会有所改进

@Ijiran
Aspose.Cells for Python via Java 和Aspose.Cells for Java用的是同样的处理方式。
Python via Java最终还是调用的for Java 的库。

The issues you have found earlier (filed as CELLSJAVA-45667) have been fixed in Aspose.Cells for Java 23.11.