【问题标题】:Caveats to watch for in transition from Sun JVM to JRockit?从 Sun JVM 过渡到 JRockit 的注意事项?
【发布时间】:2009-12-04 17:21:56
【问题描述】:

我们正在考虑将大型产品从依赖 Sun 的 JVM 过渡到 JRockit。 我还没有天真到相信这将是一个平稳的过渡(尽管我很想弄错)。

我们应该注意哪些问题或将我们的回归测试重点放在哪些问题上?

【问题讨论】:

  • JRockit 的主要问题是它的不稳定性难以重现。简单的回归测试不会揭示它的可怕之处。只有在高生产负载下才会出现零星的挂起线程。为什么你会从 Sun 切换到 JRockit?
  • 从搜索 JRockit 跳了几下之后,我来到了这里:shudo.net/jit/perf 那里有一些很棒的性能测试表明 Java 服务器比使用 GCC 编译的 C 更快(Visual C++ 在大多数情况下仍然更快。 ) +1 太棒了...但我担心它不会让 JRockit 看起来很好..
  • 这听起来像是试图通过投入一些资金和技术来提高应用程序的性能。在你的位置(我说起来容易!)我会尝试教育你的管理层了解所谓的收益是以不稳定为代价的,这也是有代价的。通过经过验证的分析、改进算法和寻找提高并发性的机会,通常可以以更低的风险获得更高的性能。
  • 不幸的是,这不是我的职责。我更喜欢久经考验的工具,比如标准的 Sun 产品。 .

标签: java jrockit


【解决方案1】:

嗯,你当然有单元测试,对吧? :-)

我使用 JRockit 只是为了“好玩”,从来没有遇到过问题。从我所见,它被用于许多种类繁多的应用程序中,因此它应该可以正常工作。好像也通过了JCK(Sun的兼容性测试),应该很顺利吧。

我会考虑打破的区域是:

  • 垃圾收集器
  • 本机代码 (JNI)
  • 文件系统处理、线程等...(除非他们使用 Sun 库代码)

文件系统、线程等......都是与底层操作系统集成的虚拟机的所有部分。如果他们使用 Sun 代码,那么出现问题的机会就会减少。

我敢打赌,过渡确实很顺利。

【讨论】:

  • 就是这样:他们不使用 Sun 的本地代码进行套接字 I/O 和线程。他们使用自己的......因为它更快(不是!)。不幸的是,这种微不足道的速度提升伴随着严重的不稳定性。我希望当甲骨文完成与 Sun 的交易时,他们会消灭 JRockit。
  • @sylvarking:任何指向不稳定恐怖故事的链接都会非常有用:)
  • 抱歉,我的意见是基于个人的轶事经验,客户不喜欢我的分享。
【解决方案2】:

正如我常说的:只有一种方法可以找出答案:去做!

转换大约需要什么... 30 分钟(您只需安装 JRockit 并在某处更改路径吗?)

你应该没事的。

过去我在使用 JDBC 时遇到过非常奇怪的问题(因为有问题的代码在 PreparedStatement 引用中,众所周知,这只是一个接口。底层驱动程序完全相同。)我有这个奇怪的错误消息到处都是关于insert intostatement。

说实话,这里还有另一个变量,我正在从 Java 1.2.2 迁移到 Java(JRockit) 1.4,但是,我认为我不应该遇到所有这些问题。

但同样,它应该足够快以找出答案。在我的例子中,我发现我在不到 5 分钟内就遇到了这些问题,因为那只是一个实验(我参加了这个 BEA 开发人员日,他们谈到了 JRockit 的强大功能),我只是忽略了它。

【讨论】:

    猜你喜欢
    • 2011-07-26
    • 2011-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-08
    相关资源
    最近更新 更多