【问题标题】:32-bit versus 64-bit JVM performance considerations?32 位与 64 位 JVM 性能注意事项?
【发布时间】:2010-03-16 18:11:14
【问题描述】:

我们的生产环境在每台 Windows 2003 服务器上运行 3 个 32 位 Java 6 JVM。每个堆都处于其最大设置(~1.25GB)。我们正在考虑迁移到新服务器并使用 64 位 JVM。假设我们可以在每台服务器上拥有一个 64 位 JVM,以替换每台服务器上的 3 个 32 位 JVM,因为在使用 64 位 JVM 时允许更大的堆大小。

有人做过这件事并吸取了教训吗?

我特别关心任何性能方面的考虑以及如何进行补偿。

【问题讨论】:

    标签: 64-bit jvm


    【解决方案1】:

    内存需求会上升,因为在 64 位架构上寻址对象的成本更高。多少实际上取决于您的应用程序。假设您没有散列 4 GB 的整数,那么一个疯狂的猜测是 10%-20%...

    您还可能会遇到记录器、线程池、连接池、单例等中锁的锁争用问题。如果您的应用程序以数据库为中心,这可能不是问题,但如果 - 例如 - 您的应用程序存储了很多地图中的会话数,并且经常访问该地图,您可能会遇到问题。根据我的经验,争用“墙”可能会很快出现。

    但是,只有一种方法可以知道:...测试一下。

    【讨论】:

    • +1,试试看。此外,从 Java 6 更新 14 开始,您可以使用“-XX:+UseCompressedOops”为
    【解决方案2】:

    我没有这样做,但是只要您不依赖任何没有 64 位版本的 32 位 JNI 代码,这应该是完全可以的。如果你使用的是纯Java,应该没有问题。

    【讨论】:

      猜你喜欢
      • 2010-11-27
      • 2011-12-25
      • 2012-02-15
      • 1970-01-01
      • 2010-10-28
      • 2011-06-26
      • 2012-09-19
      • 1970-01-01
      • 2012-03-17
      相关资源
      最近更新 更多