Java应用程序在一个系统上运行缓慢但另一个系统运行速度很快?

时间:2016-03-12 05:55:50

标签: java performance file

处理大文件需要一些文件操作应用程序。我为此创建了一个jar文件。我在我的系统上测试了1GB文件的应用程序,它在3分钟内处理,但是在同一文件的不同系统上执行时相同的jar,花了40分钟。我认为它可能是由于Java堆内存,但是当我在我的系统上执行jar时使用相同的Java堆空间,它在不到5分钟内再次执行。

任何帮助将不胜感激。如果需要更多信息,请发表评论。

我系统的配置: 内存:8GB Java版本:7 VM -XMS128m -Xmx256m 操作系统:Windows 7

测试系统的配置: 内存:6GB Java版本:7 VM -Xms128m -Xmx256m 操作系统:Windows 7

2 个答案:

答案 0 :(得分:1)

我可以想到一些可能的解释:

  • 不同的文件系统。例如,如果测试系统将文件存储在网络共享上,并且文件服务器或网络缓慢/过载,那么您可能会慢速读取。

  • 虚拟化。如果测试系统是VM,并且同一个虚拟机管理程序上的VM之间存在大量I / O争用,则可能会看到读取速度慢。

  • 内存争用。如果应用程序将文件映射到内存中,那么在存在物理RAM饥饿的系统上,与不是这种情况的系统相比,您可能会获得非常慢的I / O. (要确定是否是这种情况,您需要查看测试系统上还发生了什么。)

  • 测试系统中可能存在硬件故障。

通过查看系统级性能统计数据,可以诊断出很多这些事情。使用Java分析器(在两个系统上)也可以提供帮助。

答案 1 :(得分:0)

我也有同样的问题,我发现这是因为AV,只需将其关闭即可。我正在使用avast。希望它有所帮助!