众所周知,可以使用-Xmx<amount><unit>
来限制Java堆大小,其中unit
是数据量单位,如技嘉,兆字节等。
我知道-Xmx128M
表示128 Mebibytes(= 128 * 1024 * 1024字节)。
但这是真的吗,使用-Xmx100m
也可以使用兆字节等十进制单位
(这将是100 * 1000 * 1000字节)?
那么可以使用k, m, g
而不是K, M, G
这样的小写单位后缀来使用这个十进制单位吗?
答案 0 :(得分:24)
k和K之间没有区别,均意味着kibibyte
,m / M = mebibyte
&amp; g / G = gibibyte
。您可以将100m
设置为值,它将为100 * 1024 * 1024 bytes
。通常建议在powers of 2.
希望它有所帮助。
答案 1 :(得分:3)
为什么不试试-Xmx100m
和-Xmx100M
并检查是否有任何区别。
k, m, g
的工作方式与K, M, G
完全相同 - 它们都是二进制单位。
答案 2 :(得分:1)
JVM命令行参数使用的所有内存大小均以二进制单位(Kibibyte,Mebibyte等)指定,与单位大小写无关;其中一个&#39;千字节&#39;是1024字节,其他是增加1024的功率。
This answer对问题进行了更全面的技术回答。