众所周知,可以使用-Xmx<amount><unit>
来限制Java堆大小,其中unit
是数据量单位,如千兆字节、兆字节等。
我知道-Xmx128M
表示128 Mebibytes(= 128 * 1024 * 1024字节)。
但是,是否真的可以使用十进制单位,例如使用-Xmx100m
(这将是100 * 1000 * 1000字节)?
因此,是否可以使用小写单位后缀,例如k,m,g
而不是K,M,G
来使用这些十进制单位?
众所周知,可以使用-Xmx<amount><unit>
来限制Java堆大小,其中unit
是数据量单位,如千兆字节、兆字节等。
我知道-Xmx128M
表示128 Mebibytes(= 128 * 1024 * 1024字节)。
但是,是否真的可以使用十进制单位,例如使用-Xmx100m
(这将是100 * 1000 * 1000字节)?
因此,是否可以使用小写单位后缀,例如k,m,g
而不是K,M,G
来使用这些十进制单位?
k和K没有区别,两者都表示 kibibyte
,同样m/M= mebibyte
& g/G = gibibyte
。您可以将值设置为100m
,它将是100 * 1024 * 1024字节
。通常建议在2的次幂
中使用此值。
希望对您有所帮助。
为什么不试试使用-Xmx100m
和-Xmx100M
,并查看是否有任何区别。
k,m,g
与K,M,G
完全相同-它们都表示二进制单位。
JVM命令行参数使用的所有内存大小都以二进制单位(Kibibyte,Mebibyte等)指定,无论单位大小写如何;其中“千字节”是1024字节,其他单位的增加幂次方为1024。
这个答案提供了更完整的技术解释。