首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >大堆的G1GC日志舍入值

大堆的G1GC日志舍入值
EN

Stack Overflow用户
提问于 2014-03-18 23:35:33
回答 1查看 277关注 0票数 1

G1GC日志记录是将堆占用值打印为四舍五入到MB或GB,是否有方法打印KB或MB中的所有值?

我想分析分配率和晋升率,这种数值舍入带来了不精确的结果。

例如,下面的GC事件显示了总的堆占用正在从11.7G->1826.2M中减少,该事件仅显示收集之前堆大小的11.7G的四舍五入值。

代码语言:javascript
复制
4592.204: [GC pause (G1 Evacuation Pause) (young)
  [Eden: 9804.0M(9804.0M)->0.0B(9800.0M) Survivors: 112.0M->86.0M 
  Heap: 11.7G(15.0G)->1826.2M(15.0G)]
  ...

使用的VM标志:

-Xms16g -Xmx16g -XX:+UseG1GC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:gc.log

使用Hotspot JVM 1.8.0-b132。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-21 04:56:39

请参阅OpenJDK、7u热点、这里这里的源代码。

这两个点都使用byte_size_in_proper_unitproper_unit_for_byte_size定位于这里的方法。

我认为修改来自PrintGCDetails或PrintGC的PrintGC日志的唯一方法是重新编译JVM,这只能通过OpenJDK而不是Oracle来完成。

有关输出格式的更多信息,请参见下面的堆叠溢流柱

您还可以使用像jstat这样的工具对-gc日志中的数据使用G1GC和-gcnew选项,仅在不同的时间以KB进行采样,有关jstat使用的更多信息,请参见这里。如果您想要为Jstat编写类似的工具,则源代码位于这里

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

https://stackoverflow.com/questions/22493325

复制
相关文章

相似问题

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