java - 迁移到 64 位 JVM 的经验

标签 java 64-bit jvm

我们公司正计划迁移到 64 位 JVM,以摆脱 2 GB 的最大堆大小限制。谷歌给了我关于 64 位 JVM 性能的非常复杂的结果。 有没有人尝试迁移到 64 位 java 并分享您的经验

最佳答案

简而言之:64 位 JVM 将消耗更多内存用于对象引用和一些其他类型(通常不重要),每个线程消耗更多内存(在高容量站点上通常很重要)并使您拥有更大的堆(通常只有在您有许多长期存在的对象时才重要)

较长的回答/评论:

  • Java 是 32 位的评论 设计具有误导性。 java 内存寻址是 32,或者 64 位,但 VM 规范确保 大多数字段(例如 int、long、double、 等等)都是一样的。

  • 另外 - GC 调优评论 与对象的数量有关,可能 不相关,GC 可以很快 具有大堆的 JVM(我工作过 堆高达 15GB,非常 快速 GC)——这更多地取决于如何 你玩世代相传 收集计划,以及你的 对象使用模式是。而在 过去的人们花费了大量的精力 调参,工作量很大 依赖和现代(Java 5+)JVM 非常擅长 self 调整 - 除非 你有很多数据你更多 可能伤害自己而不是帮助 具有积极的 JVM 调优。

  • 如 x86 架构所述, 64 位 EMT64 或 x64 处理器 还包括新的说明 做原子写之类的事情,或者 其他可能也会影响的选项 高性能应用程序。

关于java - 迁移到 64 位 JVM 的经验,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2553845/

相关文章:

java - Docker 中的 cygnus : How to fixe the OutOfMemoryError?

linux - 在 Ubuntu 64 位上设置计算机时间后,计时器(使用 boost chrono steady_clock)到期

C - 使用暴力搜索 64 位 Linux 内核中的系统调用表

windows - 在 Windows 上验证 64 位二进制文​​件

java - 当没有指定显式参数时,进程是否会分配足够的堆?

java - 以编程方式访问 JMX 控制台的简单方法

java - 自定义 Lombok 生成的 Builder

java - 使用 removeif 过滤包含对象的列表

java JVM字节码表示法,注释语法。调用动态

jvm - 构建 OpenJDK 的说明