Linux和Windows之间Java程序的性能比较

时间:2012-02-05 15:39:53

标签: java windows linux

我在Windows 7和Linux(Debian)上运行了一段Java代码(测量解析和验证模式的xml文件所花费的时间)。现在,与Windows平台相比,Linux平台所用的时间必须非常少。但两种情况下记录的用户时间是相同的。

我正在修复,因为我还在两个平台上运行了一个简单的基准测试Java程序(它使用了两个嵌套循环运行了大约900000次)。而在Linux平台上的用户时间大约是Windows的60倍。

我还必须提到我在Java程序中使用了thaiopensource API。 (jing / trang项目)。我的系统使用32位Linux(Debian)(Java也是32位)并具有3 GB RAM。在Linux上,我使用openJDK 1.5和IcedTea虚拟机。我在Windows上的IDE是Eclipse Helios。

请建议我是否有办法解决这个问题,即在Linux上执行解析和验证程序所需的时间必须少于w.r.t.视窗。但事实并非如此。请建议一种方式。谢谢。

2 个答案:

答案 0 :(得分:7)

为了公平比较,您需要尽量减少测试之间的差异。即你必须使用相同版本的Java(理想情况下是最新版本或至少是最新的版本)如果你没有进行系统调用,那么使用的操作系统没有区别,它可能是其他不同的东西。

我建议您使用-server选项在两台计算机上使用最新版本的Java 7。 (Windows 32位默认为客户端JVM,这是不同的)

我还要确保您的测试运行至少10秒,以确保您进行有意义的比较。

BTW:没有特别的原因,如果您使用相同的硬件,Linux必须更快。

答案 1 :(得分:1)

写这样的微基准测试一开始你可能会更难思考。

首先,我建议您阅读IBM开发人员的 Robust Java基准测试系列文章:

  • 查看您要避免的some issues的说明,
  • 您可以使用某些statistical solutions来提取某些信息(结论结果并不总是明确而微不足道,请参阅后面我链接的文章以获取详细信息)。

另请查看Brent Boyer's site以获取更多信息(并下载可用于基准测试的库)。