2013-12-10 26 views
0

我在我的个人计算机上实现了Java应用程序。我的机器上的应用程序执行时间大约需要20秒。我迁移到了一台服务器机器,其功率是我个人机器的10倍。不幸的是,应用程序在这台服务器上执行两次执行时间。我很确定这两台机器上的JVM版本和设置都是相同的,都可以作为服务器而不是客户端,并且都可以运行Windows 7虚拟机性能上的Java应用程序

我怀疑我的机器上的操作系统是本机操作系统,而服务器的操作系统运行在具有专用巨大内存和2个物理处理器的虚拟机上运行。我对吗?在Windows虚拟机中运行Java应用程序是否会影响性能,尽管拥有10倍更强大的硬件?

+0

你需要更具体。什么是更强大的10倍,是什么使它更强大,你运行基准来确认? –

+0

这里有太多的因素要给出具体的答案。一般而言,所有其他条件相同的情况下,由于VM管理器施加的开销(您不指定使用哪一个),软件将总是在虚拟化环境中运行得更慢。此外,在特定的VM管理器配置,硬件虚拟化设置等方面可能存在各种限制。您需要提供更多详细信息。 – csvan

+2

对于单线程CPU限制任务,*没有任何内容*比您的个人计算机强10倍。 –

回答

0

我有大量服务器系统(来自Sun)的第一手经验,它具有巨大的并发I/O吞吐量,但每个特定的CPU核心是不如功能强大的比高端台式机。您正在运行的任务很可能会以未优化的方式加载该系统。

另一方面,还有很多其他因素需要考虑,比如当您进行测量时系统的其他部分正在做什么,您正在做什么,JIT编译器是否正确参与,等等。