分配内存和分配地址空间有区别. Oracle JVM正在启动时分配地址空间以确保堆是连续的.这允许与堆一起使用某些优化.

如果分配失败,则Java将不会启动…如您所见.它不一定使用那么多的内存,而是前面分配所需的地址空间.因为你正在传递-Xmx1536m,所以说可以,我需要分配,以防万一你需要它…而且由于它必须是连续的,所以它可以保证它(或尝试失败).

32位和64位JVM上的这种行为是相同的.您看到的是32位进程的2GB每进程地址空间限制(至少在Windows上这是限制 – 在其他平台上可能稍大)导致此分配在32位失败,其中64 -bit没有问题,因为它有更大的地址空间.但是,你说,1536m是不到2GB,我应该是好的,对吧?不完全 – 堆不是在地址空间中分配的唯一的东西,DLL和其他东西也被分配在地址空间…所以在32位上得到一个连续的1536m的大块,最大不超过2GB是不太可能的.我已经看到低于1000m的值在32位进程上失败,特别糟糕的碎片,通常1200-1300m是32位可以指定的最大堆.

在现代操作系统中,ASLR(地址空间布局随机化)使得32位进程地址空间的碎片变得更糟.出于安全原因,它有意将DLL加载到随机地址中,这使得它更不可能在32位中获得一个大的,连续的堆.

在64位的地址空间是如此之大,碎片不再是一个问题,巨大的堆可以分配没有问题.尽管32位内存有4GB的RAM,但是每个进程的2GB空间限制(至少在Windows上)通常意味着最大堆通常只有1300m左右.

由于超过32位java限制_Java 32位Xmx vs java 64位Xmx相关推荐

  1. android 64位进程,简单科普一下,安卓下的64位和32位

    对操作系统略有了解的朋友就一定知道Windows 系统有32位和64位之分,而大部分对32位和64位的区别并不清楚,可能只停留在最表面的"内存大于4G"就可以装64位系统了,这些了 ...

  2. 如果在安装32位oracle 客户端组件时的情况下以64位模式运行,将出现问题

    今天要写个程序,环境是win7+ vs2008+ oracle.首先得保证能连接到数据库.确认代码是没有问题的,但是拿过来直接.报错: "尝试加载 Oracle 客户端库时引发 BadIma ...

  3. 64位处理器_快看看你的电脑是64位还是32位操作系统,处理器支持64位可升级

    昨天把系统又重装了一下,猛然发现,我的电脑可以装64位操作系统,而我一直用的是32位操作系统,因为几年前,64位操作系统缺乏驱动,市面上的软件在32位操作系统兼容性好,而这几年,硬件配置的提高,64位 ...

  4. win8 php 64位下载地址,万能驱动win8/win8.1下载 64位32位

    万能驱动助理win8主要用于安装win8和win8.1系列的驱动,具有自动识别并且安装的特色,支持86位和64位系统,同时还支持中文.英文.繁体等多种语言. 万能驱动助理win8特色 万能驱动助理定位 ...

  5. java支持库(_Java运行环境支持库下载-Java Runtime Environment(JRE) v9.1.8官方64位版-ucbug下载站...

    JRE为Java Runtime Environment的简称,运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库.Java Runtime Environment(包括Java ...

  6. MDB Jet.OLEDB.4.0(32位)和 ACE.OLEDB.12.0 ACCDB(64位)的区别

    Jet 引擎,可以访问 Office 97-2003,但不能访问 Office 2007. ACE 引擎是随 Office 2007 一起发布的数据库连接组件,既可以访问 Office 2007,也可 ...

  7. java rxtx 64_java – RXTX无法在Windows 7 64位下列出或查找端口

    早上好, 我在Windows 7 64位上使用/或安装rxtx时遇到问题.我以前在x86 win XP系统上使用它并没有问题.由于某些原因重新安装到这个新系统,rxtx无法找到任何端口.我已经尝试了r ...

  8. java 模块化_Java 9 新特性 - 模块化 - Java 技术驿站-Java 技术驿站

    Java 9 最大的特性就是模块化 ( Module ) 了.本章,我们就对这个 模块化 进行一些简单的讲解,包括 Java 9 模块化的概念.如何实现.如何使用等 对于 Java 9 来说,模块化 ...

  9. 怎么运行java虚拟机_Java代码如何运行在Java虚拟机中

    我们都知道要运行Java代码就必须要有JRE,也就是Java运行时环境,JRE中包含了Java程序的必需组件,包括Java虚拟机以及Java核心类库,然而运行C++代码则不需要额外的运行时环境,只需要 ...

最新文章

  1. 动态规划练习1--Unique Paths
  2. 图像转文字(分类识别等),文字转图片,实际需要的过程
  3. 内网使用ohmyzsh
  4. storage.googleapis.com 访问与下载慢
  5. nodejs因buildpack指定不当部署到CloudFoundry后出的一个错误
  6. [渝粤教育] 郑州商学院 商学概论 参考 资料
  7. Leetcode--17.电话号码的字母组合
  8. java 超构造函数_java中的超级构造函数
  9. 图片饱和度_摄影后期完全调色指南(三):饱和度与自然饱和度有什么区别?...
  10. Spring根据包名获取包路径下的所有类
  11. 百练 01 Charm Bracelet
  12. keras faster物体检测_全网 | 深度学习目标检测算法(精选12篇)
  13. 什么是UKey?Ukey在密评中的应用 双因素身份认证 安当加密
  14. 颜值经济风暴来袭,国产美容仪如何站稳脚跟?
  15. ffmpeg学习日记5-使用ffmpeg进行h264解码
  16. Android—Gradle教程(三)
  17. jeecms9自定义标签以及使用新创建的数据库表
  18. 金蝶K3系统单据审核时报错:无效的过程调用或参数 处理方法
  19. 牛顿法python 实现
  20. 抖音CLICKID+淘宝Relaitionid回传淘积木APP内下单--转化归因联调ROI程序算法及代码技术实现

热门文章

  1. VUE项目学习(一):搭建VUE前端项目
  2. 这3个BT下载工具,可替代迅雷,总有一个适合你
  3. Oracle查询语句练习(一)
  4. 关于两个模块同时使用Arduino Mega硬串口问题
  5. 2021年浙江工商大学新生赛题解
  6. 云直播SDK核心功能对比|腾讯云、阿里云、声网、即构等SDK厂商对比
  7. 工业制造厂房vr虚拟实景展示,真实立体呈现到客户面前
  8. 科大讯飞胡郁:我所领导的超脑项目,代表了AI的未来
  9. 【LittleVGL】Windows环境下利用CodeBlocks搭建LittleVGL的PC模拟器环境配置问题
  10. PHP CURL请求慢的原因