如何在JVM中修改字符串池的大小?

k4ymrczo  于 2022-11-07  发布在  其他
关注(0)|答案(1)|浏览(136)

我在阅读一本关于Java的书,书中提到了一个修改字符串池大小的选项,该选项是XX:StringTableSize。当我在命令行中尝试此选项时,我收到一个错误,提示这是一个无效的标志。我尝试了以下两种方法,出现了相同的错误:
错误:无效标志:- -XX1234
错误:无效标志:- -XX:1234
什么是错误?我在Java SE参考中找不到解决这个问题的方法,甚至我也没有看到任何类似“-XX”的选项。
这背后的原因是什么,我犯了语法错误,还是不赞成使用此选项,或者是其他原因?我使用的是JDK 11

q5lcpyga

q5lcpyga1#

您传递的值可能小于允许的最小值。例如,I can successfully run below on OpenJDK 11

java -XX:StringTableSize=16777216 TestClass

您还可以参考优秀的链接here,了解不同JDK版本中可用的不同VM选项的摘要。
如果我提供的数据少于允许的数据,我会得到这个

java -XX:StringTableSize=10 TestClass

uintx StringTableSize=10 is outside the allowed range [ 128 ... 16777216 ]
Improperly specified VM option 'StringTableSize=10'

在过去,有关于这种参数支持的有用性和正确性的讨论。你可以阅读这些here

相关问题