方法区——元空间概述

方法区

不同版本具体实现

  • 标准层面:方法区(Method Area)
  • 具体实现层面:
    • ≤JDK1.6 永久代
    • =JDK1.7 永久代仍然存在,但是已经开始提出:去永久代
    • ≥JDK1.8元空间(Meta Space)

永久代概念辨析:

  • 从堆空间角度来说
    • 新生代:从标准和实现层面都确定属于堆
    • 老年代:从标准和实现层面都确定属于堆
    • 永久代
      • 名义上属于堆
      • 实现上不属于堆
  • 从方法区角度来说
    • 方法区的具体实现:JDK 版本 ≤ 1.7 时,使用永久代作为方法区。
    • 方法区的具体实现:JDK 版本 ≥ 1.8 时,使用元空间作为方法区。

images

元空间是什么

本身含义:万物初始,一件事情的源头或基本组成部分。

举例:元素、元始天尊、每年1月称为元月、1月1日称为元旦、元认知、元无知、元知识

对比类和对象,类相当于是对象的元信息。

JVM(Java虚拟机)内存分为堆内存、方法区、虚拟机栈、本地方法栈和程序计数器。其中,方法区被JDK1.8之后的版本取代,而元空间(Metaspace)则被引入。

元空间是一块本地内存,它用于存放类的元数据,例如类名、访问修饰符、字段、方法、注解等信息。这些信息在程序运行期间保持不变,存储在元空间中可以提高程序的运行效率。

元空间由Java虚拟机主动管理,可以将其看作是一块特殊的堆内存。相比于方法区,元空间的内存可调,可以使用-Xmx设置内存上限,且可以在适当的情况下自动进行垃圾回收。

元空间一般设置多大

在JVM中,元空间一般设置较大的内存空间才能满足应用程序对于类元数据的要求。根据应用程序的需要和计算机的硬件资源,可以根据实际情况进行内存的设置。

在JDK1.8版本中,元空间在Windows上的默认大小为21MB,而在Linux上则为24MB。如果元空间的内存已经不足,JVM会自动进行内存扩容。

一般来说,为了避免内存耗尽的风险,建议将元空间内存设置在256MB到1GB之间。

元空间和直接内存

JVM中元空间和直接内存是两个不同的概念。直接内存(Direct Memory)是为了手动分配Native内存而引入的,它与元空间不同。元空间是为了存储类的元数据而产生的。

直接内存是通过在Java堆外分配内存来实现,不受JVM的垃圾回收管理。而元空间是在线程栈和程序计数器之外的一部分虚拟机内存中。

元空间内存大小

在JDK1.8之前,JVM中的方法区是有内存大小限制的,大小由-Xmx及-XX:MaxPermSize设置,通常默认为64MB。而在JDK1.8版本之后,元空间的内存大小和直接内存一样,并且是可以进行动态调整的,不再受到固定的限制。

需要注意的是,在JVM的默认配置下,元空间的内存大小只有21MB。如果存储的类元数据过多,需要增加元空间的内存大小。可以使用JVM命令行参数-XX:MetaspaceSize设置元空间的初始大小,使用-XX:MaxMetaspaceSize设置元空间的最大大小。

    -XX:MetaspaceSize=256m
    -XX:MaxMetaspaceSize=1024m

元空间大小设置

在JVM中,我们可以通过调整元空间内存大小来优化内存使用效率。下面是几个常用的内存大小设置参数:

  •  -XX:MetaspaceSize设置元空间的初始大小
  •  -XX:MaxMetaspaceSize设置元空间的最大大小
  • -XX:MinMetaspaceFreeRatio设置最小空闲空间比率,缺省值为40%
  • -XX:MaxMetaspaceFreeRatio设置最大空闲空间比率,缺省值为70%

需要注意的是,这些参数的设置需要根据具体应用程序的需求和运行情况进行调整,避免出现内存不足的情况。

元空间存放什么内容

  • 类信息:类中定义的构造器、接口定义
  • 静态变量(类变量)
  • 常量
  • 运行时常量池
  • 类中方法的代码

JVM元空间主要存储类的元数据信息,包括Java类名、字段、方法、注解等信息。这些信息在程序运行期间保持不变,可以存储在元空间中。

需要注意的是,元空间存储的不是Java类本身,而是Java类的元数据。Java类本身存储在Java堆内存中,而这些元数据则被存储在元空间中。

由于元空间存储的是类的元数据信息,因此当加载类的时候,元空间会增加内存使用。当卸载类的时候,元空间会释放相应的内存。

元空间占用JVM内存吗

在JVM中,元空间是一块本地内存,不属于Java堆内存。因此,元空间不占用Java堆内存,也不会被JVM的垃圾回收管理。

需要注意的是,元空间的内存使用情况仍然对应用程序的内存使用情况产生影响。因此,当应用程序需要使用的类元数据过多时,需要增加元空间的内存大小,以避免出现内存不足的情况。

元空间什么时候会进行垃圾回收

在JVM中,元空间不属于Java堆内存,不受JVM的垃圾回收管理。如果元空间的内存不足,JVM会自动进行内存扩容。

需要注意的是,元空间对内存使用情况的监控需要由Java虚拟机主动管理,可能会影响程序的性能。因此,在合适的情况下,可以手动对元空间进行内存回收。

可以使用JVM命令行参数-XX:MetaspaceSize和-XX:MaxMetaspaceSize设置元空间的大小,并调整GC参数,以控制元空间内存的使用情况。

    -XX:MetaspaceSize=256m
    -XX:MaxMetaspaceSize=1024m
    -XX:+UseG1GC
    -XX:MaxGCPauseMillis=200
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
前言 第1章 地理模型的概念、特点、功能与分类 1.1 地理模型的概念 1.1.1 模型 1.1.2 地理模型 1.2 地理模型的特点 1.3 地理模型的功能 1.3.1 认识地理问题的桥梁 1.3.2 地理科学发现的工具 1.3.3 综合研究的功能 1.4 地理模型的分类 思考题 参考文献 第2章 地理建模的思维导向与原则 2.1 地理建模的思维导向 2.2 地理建模的基本原则 思考题 参考文献 第3章 地理模型建立与应用的若干问题 3.1 建立地理模型的基本步骤 3.2 建立地理模型常用的数学方法 3.3 地理模型的应用方面 3.4 建立与应用地理模型应该注意的问题 思考题 参考文献 第4章 地理建模方法概述 4.1 数据分析法 4.1.1 探索性数据分析 4.1.2 数据分析的地理建模实例 4.2 机理分析法 4.2.1 结构分析法 4.2.2 功能分析法 4.2.3 过程分析法 4.2.4 实例:地理过程中的人类活动作用 4.3 量纲分析法 4.3.1 量纲与基本量纲 4.3.2 量纲齐次性原则与相似定律 4.3.3 地理相似准则 4.4 类比分析法 4.4.1 科学发现中的类比分析法 4.4.2 类比法的地理建模实例 4.5 仿真模拟方法 思考题 参考文献 第5章 非确定型建模方法 5.1 经典统计建模方法 5.1.1 统计检验法 5.1.2 相关分析法 5.1.3 回归分析法 5.1.4 主成分分析法 5.1.5 聚类分析法 5.2 空间统计建模方法 5.2.1 空间自相关分析 5.2.2 空间计量模型 5.3 地统计建模方法 5.3.1 地统计方法的基本原理 5.3.2 应用实例 5.4 模糊数学建模法 5.4.1 模糊数学基本知识 5.4.2 模糊聚类方法 5.4.3 模糊综合评判方法 思考题 参考文献 第6章 运筹决策建模方法 6.1 线性规划方法 6.1.1 线性规划的数学模型 6.1.2 线性规划的标准形式 6.1.3 线性规划的解及其性质 6.1.4 线性规划问题的求解方法——单纯形法 6.1.5 应用实例:农场种植计划模型 6.2 目标规划方法 6.2.1 目标规划模型 6.2.2 求解目标规则的单纯形方法 6.2.3 目标规划模型实例:土地利用规划 6.3 网络分析方法 6.3.1 地理网络的测度 6.3.2 最短路径问题 6.3.3 选址问题 6.3.4 最大流问题及其求解方法 6.3.5 最小费用流及其求解方法 6.4 ahp决策分析方法 6.4.1 ahp决策分析的基本原理与计算方法 6.4.2 应用实例:扶贫开发战略决策定量分析 思考题 参考文献 第7章 信息反馈与系统仿真方法 7.1 控制论与信息反馈方法 7.1.1 几个基本概念 7.1.2 地理系统动态的控制论描述 7.1.3 建模实例:可更新资源的最优利用策略 7.2 灰色系统方法 7.2.1 灰色关联分析方法 7.2.2 灰色预测方法 7.2.3 灰色系统建模方法 7.3 系统动力学方法 7.3.1 系统动力学建模的基本原理 7.3.2 系统动力学建模实例:国土资源约束下的域发展过程 思考题 参考文献 第8章 非线性分析方法 8.1 分形理论建模方法 8.1.1 分形理论简介 8.1.2 分形理论的地理建模实例 8.2 小波分析建模方法 8.2.1 小波分析理论简介 8.2.2 小波分析方法的地理建模实例 8.3 人工神经网络建模方法 8.3.1 人工神经网络简介 8.3.2 人工神经网络方法的地理建模实例 思考题 参考文献 第9章 地理建模分析中常用的软件 9.1 SPSS及相关软件在地理建模中的应用 9.1.1 回归分析 9.1.2 因子分析 9.1.3 聚类分析 9.1.4 SPSS的其他分析功能 9.1.5 其他相关软件简介 9.2 Matlab软件在地理建模中的应用 9.2.1 Matlab主工具箱(matlab main toolbox) 9.2.2 统计工具箱(statistics toolbox) 9.3 Arcgis和Geoda软件在地统计建模方面的应用 9.3.1 Arcgis地统计模块的应用 9.3.2 Geoda的应用 参考文献

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值