- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
这里是我的 gc.log 的摘录:
2013-02-28T12:02:13.209+0100: 1486457.849: [GC 1486457.850: [ParNew 3483368K->96838K(3774912K), 0.2273030 秒] 8085678K->4710336K(49912256K), 0.2278070 秒] [时间: user=1.54 sys=0.01, real=0.23 秒]
2013-02-28T12:02:26.551+0100: 1486471.191: [GC 1486471.191: [ParNew 3452358K->125528K(3774912K), 0.2386800 秒] 8065856K->4748772K(49912256K), 0.2392150 秒] [次数: user=1.64 sys=0.01, real=0.24 秒]
2013-02-28T12:02:27.398+0100: 1486472.038: [完整 GC 1486472.039: [CMS: 4623244K->3323834K(46137344K), 3.0873920 秒] 50346 29K->3323834K(49912256K),[CMS 权限:97619K->54323K(98304K)],3.0878880 秒] [时间:user=3.04 sys=0.01,real=3.08 秒]
2013-02-28T12:02:42.758+0100: 1486487.398: [GC 1486487.399: [ParNew 3355519K->50321K(3774912K),0.0289980 秒] 6679353K->3374156K(49912256K),0.0295550 秒] [时间:user=0.20 sys=0.00,real=0.03 秒]
2013-02-28T12:02:59.045+0100: 1486503.685: [GC 1486503.685: [ParNew 3405841K->71853K(3774912K),0.0316570 秒] 6729676K->3395688K(49912256K),0.0321860 秒] [时间:user=0.22 sys=0.00,real=0.03 秒]
Full GC 后(由于 Perm 空间耗尽),年轻代回收时间从 0.23 秒减少到 0.03 秒(10 倍)。
我必须找出perm空间变满的原因,但我不明白的是为什么年轻代收集时间会因为Full GC而减少10倍。
有人可以帮我吗?
谢谢,琼。
最佳答案
通过提到的日志,我可以看出几点。
原因可能是:
当程序运行时,会发生分配和引用。短命对象死亡,其余的被提升到幸存者空间或永久空间。
可能的引用情况如下。
1)eden空间(年轻代)和survivor空间中的对象引用perm空间和tenured空间中的对象,使它们生命周期更长。
2)有时perm空间和tenured空间中的对象会引用年轻代对象(eden空间和survivor空间中)。
因为 tenured 和 perm 空间中的垃圾收集不像年轻代那么频繁。
可能存在这样的情况:永久空间或永久空间中的对象 obj1 不再被引用,并准备好被 GC 声明,因此这个 obj1 正在等待 GC,这种情况很少发生。同样,这个 obj1 可能引用了 Survivor 和 eden 空间中的对象。所以obj1引用的eden空间和survivor空间中的这个对象不符合垃圾回收的条件。因此,eden空间和survivor空间中可能有很多这样的对象,这些对象被perm空间中的obj1等对象引用,这导致eden空间和survivor空间中的对象数量更多。因此minor GC需要更多时间。
在full GC中,像obj1这样的对象会被收集,因此像obj1这样的对象引用的eden和survivor中的对象不会被GC声明,从而导致eden和survivor空间中的对象数量减少。由于对象数量较少,Minor GC 花费的时间也较少。如果您观察到进一步的日志缓慢地小GC时间再次增加(0.0289980秒,0.0316570如您的日志中提到的),它可能会增加直到下一次FULL GC。
您还可以观察 Full GC 之前的 GC 时间模式,它正在增加。(日志中提到的 0.2273030 秒,0.2386800 秒)
关于java - Full GC后年轻代回收减少10倍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15142875/
我在看 this post在 GitHub 中,但我无法理解 OP 的含义: “全表达式”暗示是一种表达式,但有时又不是。 我的解释是“完整表达式”(标准中使用的术语)可能不是表达式。 [intro.
我正在研究数字图像处理。当我尝试加载更高分辨率的图像时,我遇到了很多 OOM 问题。 我正在将这些启动参数与应用程序一起使用 -Xms10240m -Xmx10240m -XX:NewRatio=3
我为我的 java 应用程序配置了以下参数 -Xmx = 46g,-Xms = 46g,NewSize = 2g。 我们没有为 permgen 配置大小,但在 JCONSOLE 中它显示最大 perm
我正在尝试构建以下布局: +-----------------------------------+ | | +----------
关闭。这个问题需要更多focused .它目前不接受答案。 想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post . 4年前关闭。 Improve this questi
我已经多次看到这个问题被问到,但是当我尝试实现他们的解决方案时,它似乎不起作用。 我目前开始使用外部样式表涉足 HTML 和 CSS。 我创建了一个包含以下内容的容器(边框只是为了帮助我了解容器):
假设您有一个 (1) Intel/AMD x86-64 位 2 GHz 8 核处理器。 8 个内核中的每一个是否都以完整的 2 GHz 运行,或者每个内核是否以完整的 2 GHz 时钟的一部分运行(例
我想使用 RavenDb 4.0.0-beta-40018 查询一个包含动态属性的实体,但我不确定如何去做。 class Foo { public int Id { get; set; }
我的全文搜索索引有问题。我有一个字符字段大小为 30 的表。我在这个字段上创建了一个全文搜索索引,以便在这个不区分大小写的字段上进行快速搜索操作。现在,当我执行以下查询时:SELECT fieldna
如果我有一个 64 长度的 java 数组 i[],除了循环整个数组之外,是否有一种快速方法可以找出该数组中的每个位置是否“已满”?我正在编写一个黑白棋 AI,我需要知道整个数组是否已满。 最佳答案
stackoverflow 上有很多关于如何正确执行分页的问题,对于 Oracle,最流行的答案是这样的: select * from ( select row_.*, rownum rown
我有套接字应用程序,其代码片段如下。我已确保套接字在finally block 中关闭。我猜我昨天或前天刚刚进行了一次 Full GC。然后我通过jmap比较这次FGC之前和今天FGC之后的套接字实例
这里是我的 gc.log 的摘录: 2013-02-28T12:02:13.209+0100: 1486457.849: [GC 1486457.850: [ParNew 3483368K->9683
我有一个在一个 tomcat 实例上运行的 Java webapp。在高峰时段,Web 应用程序每秒提供大约 30 个页面,通常约为 15 个页面。 我的环境是: O/S: SUSE Linux En
我有一个包含一个日期时间列的表。我只需要返回最近 6 个月的行。这可以通过 WHERE CloseTime >= DATEADD(Month, DATEDIFF(Month, 0, DATEADD(m
如何获取 SVN 存储库的完整副本并将其导入到另一台服务器上? 最佳答案 您想要执行 svnadmin 转储。您可以通过 svnadmin help dump 或 reading the docs 获
当我使用 Wikipedia API 执行全文搜索时,我无法将搜索范围缩小到仅标题 (srwhat=title)。 所以在任何地方搜索时(默认) http://en.wikipedia.org/w/a
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 6年前关闭。 Improve thi
我想在数十亿个字符串中进行一般的子字符串搜索。该要求与一般全文搜索略有不同,因为我希望查询“ubst”也可以点击“substr”。 Lucene 或 Sphinx 是否能够做到这一点?如果没有,您认为
Sphinx 可以在一个句子中搜索单词。例如,我们有下一个文本: Вася молодец, съел огурец, т.к. проголодался. Такие дела. 如果我搜索 мол
我是一名优秀的程序员,十分优秀!