Java应用程序最快的操作系统

我有一个multithreading的Java程序。 我正在处理某些性能问题。

我改善了一切。 硬件+软件。 现在我认为是时候转向正确的操作系统了。

我想知道,什么操作系统是最快的Java虚拟机?

我正在使用Sun Java6。 您认为Sun Solaris将是Java应用程序的最佳select吗? 还是FreeBSD? 或CentOS(我目前正在使用它)?

谢谢

JVM性能确实因平台而异。 自从我评估jvm在各种平台上的performance以来,这已经有一段时间了,但是当我上一次在JDK1.4上做了上一次的时候,solaris是最好的。 那个时候,Linux中的JVM还是新的,并且有线程支持问题。 在JVM实现中事情已经发生了很大变化。

当然,没有简单的方法来判断,你必须select理想的硬件平台,在同一台机器上安装Soaris,Linux等,并运行一些testing来评估它。 JIT实现支持目标CPU也将有所作为。

看看每个平台支持的各种扩展JVM选项,你会得到一个公平的想法,你可以做多less优化。

还要考虑其他JVM,如JRockit或IBM JVM。

通过切换所使用的操作系统,你会发现很less(如果有的话)改进,除非你现在正在运行一些真正的旧版本,即使这样,它也可能不会让你获得性能提升。

我的猜测是,你仍然受限于你正在运行的硬件,或者你的Java应用程序是主要的问题,并可能在投入更多的硬件问题之前值得研究。

令人惊讶的是,Windows是Java最快的平台,因为它是开发者本地平台,Solaris最糟糕的一面。 在Linux上,您可以从Sun,IBM,OpenJDK和BEA中进行select,以方便您使用。

真正的答案是将要成为最简单和经济的平台来pipe理,这可能是CentOS或Ubuntu服务器。

对于执行Java应用程序的能力来说,在不同的发行版之间几乎没有任何区别。

然而。 您应该select支持现代硬件和芯片组(即相对较新的内核)的操作系统,以及稳定的发布时间表。 CentOS很好,5.4是最新版本,支持一些很好的新function,比如原生的FUSE支持。

我可能会selectUbuntu,每6个月定期发布一次,4月份发布的3年LTS,非常新的内核和良好的补丁版本,以及对sun-java6的良好支持。

select您的操作系统以获得硬件性能和兼容性,支持和安全产品。

当然,如果你想要一个正确的答案,你应该在非生产硬件环境中进行性能testing。

您应考虑拥有多操作系统生产环境的支持成本,并在计算您获得的性能优势时考虑任何COGS(销售成本)对价。

我的猜测是,你得到的任何好处都“不够”,超过支持生产中多个操作系统的额外成本。 与您的运营团队交谈以了解。

在您的操作团队已经在生产环境中支持的操作系统上,您的努力可能会更好。 你可以调整操作系统以及切换虚拟机参数,当然,修复你的代码,使其更有效率:)。 你也可以考虑不同的硬件选项。 我们发现,不同types的CPU在我们的工作负载上performance得非常不同,这完全不像典型的基准testing。