StringTable的性能调优
1、通过-XX:StringTableSize=桶个数调整
我们前面说过StringTable是靠我们的HashTable来实现的。即,当我们的空间足够大的时候,我们的数据就会比较分散,查询的效率也会因此降低,反之,当我们的空间比较小的时候,我们的数据就会比较集中,查询的效率也会因此提高。当然了,StringTable 的空间大小并不是越小越好,太小了,一直进行垃圾回收,导致经常要删除老数据,添加新数据等问题也很难受。要是那些个老数据刚删掉没多久就要用到了呢。
这里,我们以黑马程序员的代码教程为例:
读取linux.words文件数据,里面包含了48w+个单词,,我们利用循环读取每一个单词并存入串池中,直到读取结束退出循环。最终输出花费的时间(单位是秒,ms)。

运行结果:(花费0.4s,桶的大小是200000)

桶的大小:
这里其实已经做过优化了,即,通过虚拟机命令 -XX:StringTableSize=200000 将StringTable桶的数量设置为了200,000 。如果不做这种优化的话,那么,耗费的时间如下:(0.618s,桶的默认大小是60013个。)


本文介绍了如何通过调整StringTable的桶数量以及字符串对象入池来优化应用程序性能的方法。
最低0.47元/天 解锁文章
1373

被折叠的 条评论
为什么被折叠?



