栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

java -Xmx1G是否表示10 ^ 9或2 ^ 30字节?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java -Xmx1G是否表示10 ^ 9或2 ^ 30字节?

简短的答案:JVM命令行参数使用的所有内存大小均以传统的二进制单位指定,其中千字节为1024字节,其他以1024为底的幂。

长答案:

在命令行参数的此文档页面上,以下内容适用于所有接受内存大小的参数:

例如,设置大小为8 GB,您可以指定

8g
8192m
8388608k
,或
8589934592
作为参数。

对于

-Xmx
,它提供了以下特定示例:

下面的示例演示如何使用各种单位将分配的最大内存大小设置为80 MB:

-Xmx83886080

-Xmx81920k

-Xmx80m

之前,我想检查文件(我以为你已经有了?),我检查热点的源头,发现内存值在解析SRC /共享/ VM /运行/
arguments.cpp由功能

atomull
(这似乎代表“
ASCII到内存,无符号长整长整”):

// 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 != '' && 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 '':      *result = n;      return true;    default:      return false;  }}

这些常数

K
M
G
定义在SRC /共享/ VM /实用程序/
globalDefinitions.hpp:

const size_t K       = 1024;const size_t M       = K*K;const size_t G       = M*K;

所有这些都证实了该文档,只是

T
后来添加了对TB 的后缀的支持,并且根本没有记录。

使用单位乘数不是强制性的,因此,如果要 十亿个字节
,可以写入

-Xmx1000000000
。如果您确实使用乘法器,则它们是二进制的,因此
-Xmx1G
意味着2个30字节或1个RAM。

(这并不十分令人惊讶,因为Java早于IEC追溯重新定义现有单词的尝试。如果IEC仅建议使用限定符“ binary”和“
decimal”来消除存储单元的歧义,那么有时它们的含义就可以避免混乱。不清楚,例如, 二进制千兆字节 (GB 2)= 1024 3字节,
十进制千兆字节 (GB 10)= 1000 3字节,但是不,他们重新定义了每个人都在使用的单词,不可避免地引起混乱,使我们陷入困境这些小丑用语分别是“
gibibyte”,“ tebibyte”和其他。噢,上帝保佑我们。)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/404401.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号