java怎么表示10 2_java -Xmx1G是否表示10 ^ 9或2 ^ 30字节?
小編典典
簡(jiǎn)短的答案:JVM命令行參數(shù)使用的所有內(nèi)存大小均以傳統(tǒng)的二進(jìn)制單位指定,其中千字節(jié)為1024字節(jié),其他以1024為底的冪。
長(zhǎng)答案:
在命令行參數(shù)的此文檔頁(yè)面上,以下內(nèi)容適用于所有接受內(nèi)存大小的參數(shù):
例如,設(shè)置大小為8 GB,您可以指定8g,8192m,8388608k,或8589934592作為參數(shù)。
對(duì)于-Xmx,它提供了以下特定示例:
下面的示例演示如何使用各種單位將分配的最大內(nèi)存大小設(shè)置為80 MB:
-Xmx83886080
-Xmx81920k
-Xmx80m
之前,我想檢查文件(我以為你已經(jīng)有了?),我檢查熱點(diǎn)的源頭,發(fā)現(xiàn)內(nèi)存值在解析SRC /共享/ VM /運(yùn)行/
arguments.cpp由功能atomull(這似乎代表“
ASCII到內(nèi)存,無(wú)符號(hào)長(zhǎng)整長(zhǎng)整”):
// Parses a memory size specification string.
static bool atomull(const char *s, julong* result) {
julong n = 0;
int args_read = sscanf(s, JULONG_FORMAT, &n);
if (args_read != 1) {
return false;
}
while (*s != '\0' && isdigit(*s)) {
s++;
}
// 4705540: illegal if more characters are found after the first non-digit
if (strlen(s) > 1) {
return false;
}
switch (*s) {
case 'T': case 't':
*result = n * G * K;
// Check for overflow.
if (*result/((julong)G * K) != n) return false;
return true;
case 'G': case 'g':
*result = n * G;
if (*result/G != n) return false;
return true;
case 'M': case 'm':
*result = n * M;
if (*result/M != n) return false;
return true;
case 'K': case 'k':
*result = n * K;
if (*result/K != n) return false;
return true;
case '\0':
*result = n;
return true;
default:
return false;
}
}
const size_t K = 1024;
const size_t M = K*K;
const size_t G = M*K;
所有這些都證實(shí)了該文檔,只是T后來(lái)添加了對(duì)TB 的后綴的支持,并且根本沒(méi)有記錄。
使用單位乘數(shù)不是強(qiáng)制性的,因此,如果要 十億個(gè)字節(jié)
,可以寫(xiě)入-Xmx1000000000。如果您確實(shí)使用乘法器,則它們是二進(jìn)制的,因此-Xmx1G意味著2個(gè)30字節(jié)或1個(gè)RAM。
(這并不十分令人驚訝,因?yàn)镴ava早于IEC追溯重新定義現(xiàn)有單詞的嘗試。如果IEC僅建議使用限定符“ binary”和“
decimal”來(lái)消除存儲(chǔ)單元的歧義,那么有時(shí)它們的含義就可以避免混亂。不清楚,例如, 二進(jìn)制千兆字節(jié) (GB 2)= 1024 3字節(jié),
十進(jìn)制千兆字節(jié) (GB 10)= 1000 3字節(jié),但是不,他們重新定義了每個(gè)人都在使用的單詞,不可避免地引起混亂,使我們陷入困境這些小丑用語(yǔ)分別是“
gibibyte”,“ tebibyte”和其他。噢,上帝保佑我們。)
2020-11-16
總結(jié)
以上是生活随笔為你收集整理的java怎么表示10 2_java -Xmx1G是否表示10 ^ 9或2 ^ 30字节?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: small2java_java类
- 下一篇: Java有趣的小功能_Java8 中有趣