Java Minor GC问题

Eumenidies 发布于 2015/01/30 19:18
阅读 1K+
收藏 1

MinorGC频率每秒10次左右,耗时0.2~0.3秒,几乎没有FullGC,每次MinorGC都会将YoungGen:600M-->6M

原因是因为每秒都有大概600M的临时对象,对没错,600M,因为是接收数据,然后转换格式,再推出去,所以我想问下,这种情况应该怎么去优化呢个,今天试了很久,稍微有点起色,现在是-XX:+NewSize=512m -XX:+NewRatio=2 -XX:+TargetSurviorRatio=90 -XX:+SurviorRatio=3

目的就是防止YoungGen不停地扩大缩小,不知道理解有没有错误,第一次GC调优,望指教,随便骂。

希望有类似经验的前辈指教。

以下是问题补充:

@Eumenidies:忘了讲了:-Xms1024m -Xmx2048m -Xmn768m (2015/01/30 20:13)
加载中
0
第一天
MinorGC发生频繁的原因是因为Eden区没有足够的空间分配,-Xmn768m在给大点
0
狐狸糊涂
狐狸糊涂

我有个类似的数据转换的应用也是频繁MinorGC,而且基本上OldGen用不到,建议增大YongGen的空间。

-XX:NewRatio=1 或者-XX:NewSize=xxxm。另外,你写的参数应该是有问题的,对于-XX:+NewSize=512m这种数值型的选项,前面的+号是错误的,+号仅仅在boolean选项中才起作用。

0
Eumenidies
Eumenidies
@第一天 @狐狸糊涂 谢谢你们的回答,其实我的题目描述也不太对,凭记忆写出来的,很多数字有错,不过经过调试,现在每秒10~20次的MinorGC,每秒GC耗时0.05秒以下,算是差不多了。
返回顶部
顶部