jvm7 jvm8_JVM PermGen –您在哪里?

jvm7 jvm8

这篇文章介绍了JVM内存结构的一些基础知识,并快速窥视了PermGen,以了解自Java SE 8出现以来它已消失的地方。

裸基础

JVM只是系统上运行的另一个进程,魔术始于java命令。 像任何OS进程一样,它需要内存才能运行。 请记住– JVM本身是对硬件的软件抽象,在其之上运行Java程序,并拥有OS独立性和WORA (一次写入即可在任何地方运行)。

快速介绍JVM内存结构

根据规范,JVM分为5个虚拟内存段。

  • 方法(非堆)
  • JVM堆栈
  • 本机堆栈
  • PC寄存器

jvm-memory-segments1

  • Java程序中分配的每个对象都需要存储在内存中。 堆是存储所有实例化对象的区域。 是的–责怪操作员填满Java堆!
  • 由所有线程共享
  • JVM耗尽时会抛出java.lang.OutOfMemoryError
  • 使用-Xms-Xmx JVM选项来调整堆大小

内存不足错误

细分为

  • 伊甸园 (年轻)–该区域中存在新对象或预期寿命短的对象,并使用-XX:NewSize和-XX:MaxNewSize参数对其进行调节。 GC(垃圾收集器)次要空间
  • 幸存者 –仍被引用的对象设法在伊甸园空间的垃圾收集中幸存下来,最终到达该区域。 通过-XX:SurvivorRatio JVM选项进行调节
  • (已租用)–适用于在伊甸园和幸存者空间中可以长期保存垃圾的对象(当然,这是由于存在持久的引用)。 一个特殊的垃圾收集器负责这个空间。 使用权空间中的对象脱空间由GC Major负责

方法范围

  • 也称为非堆区域(在HotSpot JVM实现中)
  • 它分为2个主要子空间

永久 生成 –该区域存储来自类定义,结构,方法,字段,方法(数据和代码)和常量的类相关数据。 可以使用-XX:PermSize和-XX:MaxPermSize进行调节。 如果空间不足,则IT会导致java.lang.OutOfMemoryError:PermGen空间。

代码 缓存 –缓存区域用于存储编译的代码。 编译后的代码不过是本机 代码 (特定于硬件),并且由Oracle HotSpot JVM专用的JIT (及时)编译器处理。

JVM堆栈

  • 与Java类中的方法有很多关系
  • 存储局部变量并调节方法调用,部分结果和返回值
  • Java中的每个线程都有自己的堆栈(专用)副本,其他线程无法访问。
  • 使用-Xss JVM选项进行了调整

本机堆栈

  • 用于本机方法(非Java代码)
  • 每线程分配

PC寄存器

  • 特定于特定线程的程序计数器
  • 包含要执行的JVM指令的地址(对于本机方法,则未定义)

因此,这就是JVM内存段基础知识。 回到永久的一代。

那么PermGen在哪里?

本质上,PermGen已被完全删除 d, 并被另一个称为Metaspace的存储区域取代

元空间–事实

  • 它是本机堆内存的一部分
  • 可以使用-XX:MetaspaceSize-XX:MaxMetaspaceSize进行调整
  • 清理由XX:MetaspaceSize选项驱动的启动,即达到MetaspaceSize时。
  • java.lang.OutOfMemoryError:如果本机空间已用完,将接收元数据空间
  • 如果存在PermGen相关的JVM选项-XX:PermSize和-XX:MaxPermSize,将被忽略

这显然只是冰山一角。 为了全面了解JVM,没有比规范本身更好参考

您也可以探索

  • Java语言规范
  • Java 8有什么新功能?

干杯!

翻译自: https://www.javacodegeeks.com/2014/09/jvm-permgen-where-art-thou.html

jvm7 jvm8

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/339875.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2019网络教育计算机统考模拟试题,最新2019年网络远程教育《计算机应用基础》统考模拟题库500题(含答案)...

2019年网络远程教育统考《计算机应用基础》考试题库500题[含答案]一、选择题1.启动ExCEl2003应用程序后自动建立的工作簿文件的文件名为_______。A.工作簿B.工作簿文件C.BookFilE1D.Book12.OutlookExprEss的主要功能是__________。A.创建电子邮件账户B.搜…

C++类与对象(中)第二篇

前言: C语言中使用运算符是对内置类型的数据进行操作,但是在C中有了对象,导致对象无法通过运算符进行运算,故引入了运算符重载即需要重新定义这些运算符,赋予已有运算符新的功能,使它能够用于特定类型执行特…

松下壁挂式新风系统推荐_松下壁挂式新风怎么样 松下壁挂式新风系统优势介绍【详解】...

现在很多的家庭都是会安装 新风系统 的,这样也是可以保证室内的空气质量的。其实市场上的新风系统品牌是比较多的,比如松下等,其质量是比较不错的,那么松下壁挂式新风系统的优势有哪些?我们来看看小编的相关介绍吧。松下壁挂式新…

ETL万岁

提取转换负载是用于从一个数据系统中提取数据并加载到另一个数据系统中的过程。 涉及的数据系统称为源系统和目标系统。 来自源系统的数据形状与目标系统不匹配,因此需要进行一些转换以使其兼容,该过程称为Transformation 。 转换是由map / filter / re…

云计算机内存不足怎么办,网易云音乐提示内存不足,电脑提示内存不足-

在有些时候我们的手机百度云提示内存不足了,这该怎么办呢?那么下面就由学习啦小编来给你们说说手机百度云提示内存不足的解决方法吧,希望可以帮到你们哦!手机百度云提示内存不足的解决方法一:手机用久了,需要安装杀毒软件&#x…

黑盒攻击的分类_「图像分类」图像分类中的对抗攻击是怎么回事?

欢迎大家来到图像分类专栏,深度学习分类模型虽然性能强大,但是也常常会因为受到小的干扰而性能崩溃,对抗攻击就是专门研究如何提高网络模型鲁棒性的方法,本文简要介绍相关内容。作者 | 郭冰洋编辑 | 言有三1 简介对于人类而言&…

getter/setter_Getters / Setters。 邪恶。 期。

getter/setter从2003年开始,艾伦霍鲁布(Allen Holub)讨论了为什么吸气和塞特方法是邪恶的著名文章,关于吸气/塞特方法是否是反模式,应该避免使用,还是我们在面向对象中不可避免地需要它,这是一个…

flowable画图教程_JeeGit企业级快速开发平台-JeeSite4 Flowable入门教程

注: 998元以下课程无咨询服务该课程包含服务内容:299元含发票在线课程观看权购课后,教学资源联系长春叭姐QQ:3211247533 索要教学内容3.1 第一章 业务流程 BPM、工作流引擎、Flowable、Activiti23.1.1 JeeSite4 Flowable 课程简介…

Java / Spring:如何快速生成整个Swagger记录的CRUD REST API

作为开发人员,我们在日常生活中经常面临的最繁琐的任务之一就是编写良好且易于理解的文档。 无论我们的文档只有几行来解释功能的核心功能,还是表明系统的来龙去脉的成熟文章都没关系。 重要的是,我们试图通过文档传达的信息是准确且可理解的…

计算机中的英语六级作文万能模板,大学英语六级作文万能模板7篇

很多人都觉得六级很难,其实主要是作文不会写,今天我们为大家整理了一些六级作文万能模板,大家可以借鉴一下,相信会对大家的提高有所帮助。大学英语六级作文万能模板1∶ 阐述主题型要求从一句话或一个主题出发,按照提纲…

中的实践 中兴_中兴通讯5G智慧治水业务在千岛湖畔下姜村成功实践

近日,中兴通讯智慧治水业务在千岛湖畔下姜村成功实践。这一业务为实现千岛湖下姜村水域的智能化管理、立体化监控提供了可靠保障,也将浙江电信5G网络、中兴通讯5G端到端解决方案在试商用实践中再推进一步。下姜村曾先后获得“全国创先争优先进基层党组织…

consul宕机配置丢失_简单的配置死机

consul宕机配置丢失编写整个框架的目的是为了处理应用程序的配置。 我更喜欢一种简单的方法。 如果通过配置来表示“ 部署之间可能有所不同的所有内容 ”,那么我们应该尝试使配置保持简单。 在Java中,最简单的选项是不起眼的属性文件。 属性文件的缺点是…

html post前md5加密,post提交及MD5加密

C# POST提交/// /// post 网址提交////// 提交网站/// 参数/// 编码方式///public static string PostWebRequest(string postUrl, string paramData, Encoding dataEncode){string ret string.Empty;try{byte[] byteArray dataEncode.GetBytes(paramData); //转化HttpWebReq…

一加7充电_一加真无线耳机曝光,65W快速充电器获认证

一加8系列发布后,曾有消息显示,一加旗下还有一款被称为一加Z的手机将于今年7月登陆市场。现在,距离传言中提到的发布时间越来越近,也再次有消息提到了这一时间点。不过,这次爆料中的新品并不是手机产品。来自爆料人士 …

从工作中清除代码–使用JUnit 5,Mockito和AssertJ编写可执行规范

可执行规范是可以用作设计规范的测试。 通过启用公共语言(在DDD世界中,这也称为无处不在的语言 ),它们使技术和业务团队能够进入同一页面。 它们充当代码的未来维护者的文档。 在本文中,我们将看到一种编写自动测试的…

怎么使用starwind部署iscsi_2019 年总结 - 多环境多版本的部署

自己几乎经历了部署演进的所有阶段,手动部署、自动部署,部署到服务器、部署到容器。我们也在不断演进并追赶行业前沿的技术/理念。保守估计今年可以基本追赶到行业前沿的最低水平。工作中经历了部署语言的多样化,部署目标的演化/进化&#xf…

家用计算机注意哪些参数,电脑小白买内存条要注意哪些?主要看哪些参数?这些知识要掌握...

内存条是电脑的核心硬件之一,它的作用主要是为CPU服务的,电脑运行的时候,CPU从硬盘里调用数据通过总线寻址放在内存里,内存相当于缓冲处理区,处理好信息后再回馈给CPU,然后电脑再根据指令运行。内存没有记忆…

java 单元测试技巧_其他一些单元测试技巧

java 单元测试技巧在我以前的文章中,我展示了有关JavaBeans单元测试的一些技巧。 在此博客文章中,我将针对单元测试一些相当常见的Java代码(即实用程序类和Log4J日志记录语句)提供另外两个提示。 测试实用程序类 如果您的实用程序…

日照职业技术学院计算机怎么样,日照职业技术学院宿舍条件怎么样 住宿环境好不好...

又到了一年一度的新生入学季,今年考上日照职业技术学院的学子们对你们的新学校有没有期待?下文中有途网小编给大家整理了日照职业技术学院的宿舍环境,供参考!日照职业技术学院宿舍环境如何大学宿舍是各位同学们在大学期间会陪伴我…

cam350怎么看顶层_蛋糕胚速学教程大全,适合初学者看哦!

蛋糕胚速学教程大全,适合初学者看哦!烘焙蛋糕最难的还是装饰,对手残星人来说,好不容易切好了蛋糕胚,抹面费了老大劲还是凹凸不平,做出来像狗狗啃过似的~快来看这份蛋糕抹面技巧,教你…