java - 从 Java 1.4.2 更新到 Java 6(均为 Sun VM)会导致性能下降

标签 java performance jvm sun

我刚刚将一些在 Sun Java 1.4.2 VM 上运行的旧 Java 源升级到 Sun Java (JRE) 6 VM。或多或少,我唯一需要更改的是为一些抽象对象(Hashmap、Vector 等)添加显式数据类型。代码本身占用大量内存,最多使用 1G 堆内存(使用 -Xmx1024m 作为启动 VM 的参数)。

由于我阅读了很多有关更新 Java VM 的更好性能的信息,这是我进行此升级的原因之一。

  1. 谁能想到我现在的性能变差的原因(当然只是一般情况,因为您无法查看代码)?
  2. 如果我想优化(速度方面)现有代码,有没有人对非 Java 大师提出建议?任何提示、推荐的文档、工具?

谢谢。

最佳答案

这里没有太多信息。但这里有几件事您可能想要探索:

  • 使用相同的 Xmx 和 Xms 值启动 VM(在您的情况下为 1024M)

  • 确保正在使用服务器 jvm dll 启动虚拟机。

  • 运行分析器以查看哪些对象正在占用内存或哪些对象未被垃圾回收

  • 将您的 VM 与 jconsole 连接起来并跟踪对象

关于java - 从 Java 1.4.2 更新到 Java 6(均为 Sun VM)会导致性能下降,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/362500/

相关文章:

java - URL 读取 : works in main, 但不在构造函数中

java - 在 Java Swing 程序中使用命令行参数

java - 创建初始容量为 0 的 ArrayList 的优点?

Java:类路径 JVM 上的多个资源中的哪一个?

java - 当计算机从 sleep 模式或待机状态唤醒时,基于图像的 jframe 变为白色

c++ - 我如何优化此代码以这种格式打印?

mysql - MySQL 查询速度慢 "copying to tmp table",帮助重写它

java - 为什么/何时不想在 JVM 中启用 Java 8 UseStringDeduplication?

java - 如何提高java中的GC调用率?

Tomcat JVM 崩溃 - EXCEPTION_ACCESS_VIOLATION (0xc0000005)