Java内存机制详解.pdfVIP

  1. 1、本文档共35页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java 内存机制详解 Java堆 (每个 Java对象在其中分配 )是您在编写 Java应用程序时使用最频繁的内存区域。JVM设计 用于将我们与主机的特性隔离 ,所以将内存当作堆来考虑再正常不过了。您一定遇到过 Java 堆 OutOfMemoryError ,它可能是由于对象泄漏造成的 ,也可能是因为堆的大小不足以存储所有数据 , 您也可能了解这些场景的一些调试技巧。但是随着您的 Java应用程序处理越来越多的数据和越来越多的 并发负载 ,您可能就会遇到无法使用常规技巧进行修复的 OutOfMemoryError 。 在一些场景中 ,即使 java堆未满 ,也会抛出错误。当这类场景发生时 ,您需要理解 Java运行时环境 (Java Runtime Environment ,JRE)内部到底发生了什么。 Java应用程序在 Java运行时的虚拟化环境中运行 ,但是运行时本身是使用 C之类的语言编写的本机程 序 ,它也会耗用本机资源 ,包括本机内存 。本机内存是可用于运行时进程的内存 ,它与 Java应用程序使 用的 java堆内存不同。每种虚拟化资源 (包括 Java堆和 Java线程 )都必须存储在本机内存中 ,虚拟机 在运行时使用的数据也是如此。这意味着主机的硬件和操作系统施加在本机内存上的限制会影响到 Java 应用程序的性能。 本系列文章共分两篇 ,讨论不同平台上的相应话题。本文是其中一篇。在这两篇文章中 ,您将了解什么是 本机内存 ,Java运行时如何使用它 ,本机内存耗尽之后会发生什么情况 ,以及如何调试本 机 OutOfMemoryError 。本文介绍 Windows和 Linux 平台上的这一主题 ,不会介绍任何特定的运行时 实现。 本机内存简介 硬件限制 本机进程遇到的许多限制都是由硬件造成的 ,而与操作系统没有关系。每台计算机都有一个处理器和一些 随机存取存储器 (RAM),后者也称为物理 内存。处理器将数据流解释为要执行的指令 ,它拥有一个或多 个处理单元 ,用于执行整数和浮点运算以及更高级的计算。处理器具有许多寄存器 —— 常快速的内存元素 , 用作被执行的计算的工作存储 ,寄存器大小决定了一次计算可使用的最大数值。 处理器通过内存总线连接到物理内存。物理地址 (处理器用于索引物理 RAM的地址 )的大小限制了可以 寻址的内存。例如 ,一个 16位物理地址可以寻址 0x0000到 0xFFFF的内存地址 ,这个地址范围包括 2^16 65536个惟一的内存位置。如果每个地址引用一个存储字节 ,那么一个 16位物理地址将允许处 理器寻址 64KB 内存。 处理器被描述为特定数量的数据位。这通常指的是寄存器大小 ,但是也存在例外 ,比如 32位 390指的是 物理地址大小。对于桌面和服务器平台 ,这个数字为 31、32或 64 ;对于嵌入式设备和微处理器 ,这个 数字可能小至 4。物理地址大小可以与寄存器带宽一样大 ,也可以比它大或小。如果在适当的操作系统上 运行 ,大部分 64位处理器可以运行 32位程序。 表 1列出了一些流行的 Linux和 Windows架构 ,以及它们的寄存器和物理地址大小: 表 1.一些流行处理器架构的寄存器和物理地址大小 架构 寄存器带宽 (位) 物 32 (现代 )Intel?x86 32 36,具有 物理地址扩展 (Pentiu x86 64 64 目前为 48位 (以后将会增大) PPC64 64 在 POWER 5上为 50位 390 31位 32 31 390 64位 64 64 操作系统和虚拟内存 如果您编写无需操作系统 ,直接在处理器上运行的应用程序 ,您可以使用处理器可以寻址的所有内存 (假 设连接到了足够的物理 RAM)。但是要使用多任务和硬

文档评论(0)

peace0308 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档