首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java7与java5垃圾收集

Java7与java5垃圾收集
EN

Stack Overflow用户
提问于 2015-12-20 03:42:34
回答 3查看 86关注 0票数 2

我们计划将当前运行在Java5堆栈上的企业应用程序迁移到Java7堆栈。我们遇到了隐式 gc调用(主要是主要gc)的问题,导致系统在短时间内不稳定(从5分钟到30分钟)。通过对gc统计数据的分析,发现压缩阶段要花费相当长的时间才能完成。我知道压缩是相当复杂和耗时的,但它影响应用服务器,这是面向客户的,很少有连接在这个阶段。

现在,我的问题是,当我们迁移到Java7时,是否有一个比Java5更好的垃圾收集过程?

为App服务器提供了体面的系统资源。

  1. 每个应用服务器包含32个cpu核心。
  2. 包含64 gb内存
  3. App服务器是IBM webpshere服务器。
  4. 操作系统- 64位IBM AIX

如前所述,gc之所以发生,是因为隐式系统调用。没有调用gc的显式系统调用。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-12-28 23:03:32

现在,我的问题是,当我们迁移到Java7时,是否有一个比Java5更好的垃圾收集过程?

通常是的,尽管作为@Pushkar,您确实应该迁移到Java 8。

关于应用程序的具体内容,听起来您需要对Java 5上的垃圾收集进行调优/调整。如果您由于GC而周期性地经历5到30 >>minutes<<的不稳定,则会出现一些相当大的错误。当前的行为可能是您的应用程序或Websphere (例如内存泄漏、过度缓存等)造成的,也可能是由于GC调优不佳造成的。

简而言之,切换到Java 7(或8)可能会使事情变得更好,但很可能需要付出更多的努力来解决问题的根本原因。

最后,我建议一些显而易见的事情。

  • 用小步骤实现更改。不要在某个时候升级你的应用程序,websphere版本,java版本等等。
  • 每次对服务器进行升级。有一个回退计划,以防你得到不可接受的表现。
  • 如果可能的话,先试一下.包括性能/负载测试。
票数 1
EN

Stack Overflow用户

发布于 2015-12-20 16:08:21

默认情况下,java 7在服务器类计算机上使用parallelGC。如果您正在使用JDK 7 update 4或更高版本,请切换到G1垃圾收集器,这可能会给您带来更好的性能。但是,正如@8472所建议的那样,最好知道您在java 5中使用了哪些设置,现在在您的当前环境中使用了哪些设置。

票数 1
EN

Stack Overflow用户

发布于 2015-12-28 21:36:40

Java 7在2015年4月左右达到了生命的尽头。为什么不迁移到1.8呢?

GC性能通常通过java主要版本(在某些情况下使用小型GC)而得到改善。

您应该查看一下差异GC调优标志,下面的链接可能会帮助您http://www.oracle.com/technetwork/articles/java/vmoptions-jsp-140102.html

http://stas-blogspot.blogspot.com/2011/07/most-complete-list-of-xx-options-for.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34377749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档