我在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.视窗。但事实并非如此。请建议一种方式。谢谢。
答案 0 :(得分:7)
为了公平比较,您需要尽量减少测试之间的差异。即你必须使用相同版本的Java(理想情况下是最新版本或至少是最新的版本)如果你没有进行系统调用,那么使用的操作系统没有区别,它可能是其他不同的东西。
我建议您使用-server
选项在两台计算机上使用最新版本的Java 7。 (Windows 32位默认为客户端JVM,这是不同的)
我还要确保您的测试运行至少10秒,以确保您进行有意义的比较。
BTW:没有特别的原因,如果您使用相同的硬件,Linux必须更快。答案 1 :(得分:1)
写这样的微基准测试一开始你可能会更难思考。
首先,我建议您阅读IBM开发人员的 Robust Java基准测试系列文章:
另请查看Brent Boyer's site以获取更多信息(并下载可用于基准测试的库)。