性能问答>ygc越来越慢-stringtable慢慢增大,想看下native方法的堆栈>
8回复

ygc越来越慢-stringtable慢慢增大,想看下native方法的堆栈



已知是string.intern方法导致StringTable慢慢增大,将项目中的Jackson相关逻辑都已经优化了,但是还避免不了增大。
所以想看下string.intern方法的调用堆栈。求大佬指点下,怎么修改jdk

3182 阅读
请先登录,再评论

简单点 dump 堆, 拿出来分析分析就行吧

2年前

这个方式是native的,不能插桩,可以用-XX:StringTableSize这个参数来设置下Size

2年前
回复 风吹屁屁凉:

是的,改openjdk,打印出来堆栈信息,但是操作起来太复杂😂

2年前回复
回复 🚀🚀🚀_610050:

改JVM肯定可以,不过就是麻烦,而且看能否重现

2年前回复
回复 Balloon:

感谢老哥回复,确实是native的,也想着用Btrace,结果Btrace不支持native方法,目前选取的方式就是调大了StringTableSize,但是还是想找到根本原因。看到这个社区的大佬修改了jdk能确认是谁调用的,所以来这问问

2年前回复

QQ图片20200601095425.jpg

这是1.7及以后的11之后的我没研究过不知道改没改。

QQ图片20200601095601.jpg

1.6之前是这样的,“深入理解jvm虚拟机”可以看看

2年前
回复 🚀🚀🚀_610050:

只能修改JVM,然后重新编译跑,比较麻烦

2年前回复
回复 MA:

感谢老哥的答复啊,你说的这是string.intern把字符串写入到了常量池,我现在的问题是,我的StringTable存储的String太多了导致我ygc越来越慢,所以我想知道是谁用了string.intern...

2年前回复