资讯 小学 初中 高中 语言 会计职称 学历提升 法考 计算机考试 医护考试 建工考试 教育百科
栏目分类:
子分类:
返回
空麓网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
空麓网 > 计算机考试 > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: 计算机考试归档 最新发布

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”和其他。噢,上帝保佑我们。)



转载请注明:文章转载自 http://www.konglu.com/
本文地址:http://www.konglu.com/it/404401.html
免责声明:

我们致力于保护作者版权,注重分享,被刊用文章【java -Xmx1G是否表示10 ^ 9或2 ^ 30字节?】因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2023 成都空麓科技有限公司

ICP备案号:蜀ICP备2023000828号-2