jvm字符串池实习生中有多少个字符串

Zam*_*mir 6 java string profiling

我正在分析一个应用程序,并使用实习生输入字符串确实有帮助.我想要找到的是一个用于对象池的好数字,所以我不会有性能损失.我如何知道实习池中插入了多少个字符串?

我正在运行一些生产跟踪,我无法真正计算输入.

JVM是否为此提供了api?

man*_*uti 7

从JDK7开始,您可以使用-XX:+PrintStringTableStatisticsJVM标志来打印有关字符串表大小的信息,例如存储桶的数量和存储桶的大小.

您也可以jmap通过调用命令jmap -heap *process_id*来使用该工具,该命令最后会显示实习字符串的数量和总大小(也需要JDK7 +).

查看此博客文章了解更多详情.

  • 关于此主题的另一篇有用的博客文章:[* Java 6、7和8中的String.intern –字符串池*](http://java-performance.info/string-intern-in-java-6-7-8/ )由[Mikhail Vorontsov](http://java-performance.info/author/Mike/) (2认同)