gpt4 book ai didi

Java Web Start 导致执行缓慢

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:16:33 27 4
gpt4 key购买 nike

我有一个使用 Java Web Start 部署的应用程序。在进行单元测试时,我注意到一个小问题:每当我的应用程序使用 Java Web Start 运行时,某个特定操作需要很长时间才能执行。但是,当在本地运行时,速度非常快。

我所说的特定操作是读取一个大的(5k 行)Excel 文件来解析它。这是代码行:

Workbook wb = WorkbookFactory.create(new FileInputStream(new File(inputFile.getText())));

为了解决问题,我加了一个记录时间的方法:

long time1 = System.currentTimeMillis();
Workbook wb = WorkbookFactory.create(new FileInputStream(new File(inputFile.getText())));
long time2 = System.currentTimeMillis();
long diff = time2 - time1;
double seconds = (double)diff / (double)1000;
DecimalFormat df = new DecimalFormat("#,##0.00");
System.out.println("Elapsed Time: " + df.format(seconds) + " seconds.");

这是输出:

(本地)

Elapsed Time: 4.83 seconds.

(Java 网络启动)

Elapsed Time: 35.52 seconds.

但是,紧接着的后续运行(在 Java Web Start 上)会产生以下结果:

Elapsed Time: 1.61 seconds.

我怀疑这与 POI 库有关(特别是读取 POI 所需的库大小,更具体地说,是 13 MB ooxml-schemas-1.0.jar 库文件)。所以,我的问题是:假设它是图书馆的大小,有什么办法可以防止这种情况发生吗?我通过控制面板打开了库缓存,那么为什么它似乎需要缓存库?一旦加载,它很快。但第一次需要永远。

这是控制面板的图像,显​​示我允许它存储库:enter image description here

有没有人见过这种行为?没有 SSCCE,因为...好吧,您如何发布带有 Java Web Start 问题的 SSCCE?

最佳答案

鉴于任何profiling结果,你应该批判性地审查 <resources/> <j2se/> 中指定的属性你的元素.jnlp并将它们与您的开发环境中的那些进行比较。特别是,查看那些影响性能的因素,例如堆大小和 VM 类型:

<resources>
<j2se
version="1.6+"
initial-heap-size="128m"
max-heap-size="256m"
java-vm-args="-server"/>

</resources>

关于Java Web Start 导致执行缓慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19341419/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com