【发布时间】:2018-10-25 01:23:45
【问题描述】:
我目前的 Java 程序出现了奇怪的行为:
该程序是一个 JavaFX 桌面应用程序,它使用本地 Selenium 独立服务器打开 WebApp、进行一些输入并下载 Excel 文件。它读取 Excel 文件并将其与另一个 Excel 表进行比较并标记差异。
它正在工作,我面临的问题是,生成的 JAR 运行速度比我从 Eclipse 启动项目时慢。唯一显着的性能差异是当我将 Excel 表格与 Apache POI 进行比较时。
我将问题缩小到 JRE - 如果我启动 Jar,它使用 32 位 JRE 如果我从 Eclipse 启动它使用 64 位 JDK。
我用 JConsole 监控了这两个进程,32 位的 Jar 几乎使用了 20 分钟,而 64 位只需要大约 30 秒。
Apache Poi 在 32 位系统上是否有任何问题?或者您有什么想法和建议,我可以如何更好地监控并找到显着性能的瓶颈?
【问题讨论】:
-
将
-DXmx=512m的内存设置为合理的值。 -
我不相信仅仅因为 32 位和 64 位,差异会如此之大。尝试查看虚拟机设置。
-
@JoopEggen 不应该是
-Xmx吗?我一直用-Xmx,从来没有新的你可以做-DXmx... -
@Itai 当然
-
@JoopEggen 我做了,但仍然没有区别,即使内存更多,当我使用 32 位环境时,执行时间也会更长
标签: java performance apache-poi 32bit-64bit