静态方法多次调用内存_JVM内存结构图(1.8之后发生了什么)
JDK1.8之前
JVM1.8之前主要由五个部分组成:
- 线程共享
- 堆:主要存储实例对象,GC的主要活动区域。
- 方法区:主要存储类的原始信息,静态方法,类,属性,运行时常量池,即时编译,常量等信息
- 线程私有
- 程序计数器:指向当前线程正在执行的字节码的地址和行号,线程抢夺CPU时间片的现场。
- 虚拟机栈:里边包含多个栈帧,每个栈帧就是一个方法,栈帧记录着{局部变量表、方法出口、操作数栈}
- 本地方法栈:JVM调用本地方法
附图:
![](/assets/blank.gif)
jdk1.8之前,JVM结构图
JDK1.8及之后
Jdk1.8之后去除了方法区,增加了元数据区,只存储类的原始信息,常量池等移动到堆中了。
原因如下:
- 字符串存在永久代中,容易出现性能问题和内存溢出。
- 类及方法的信息等比较难确定其大小,因此对于永久代的大小指定比较困难,太小容易出现永久代溢出,太大则容易导致老年代溢出。
- 永久代会为 GC 带来不必要的复杂度,并且回收效率偏低。
- 多个JVM可以共用一份相同的类信息。
附图:
![](/assets/blank.gif)
JDK1.8 JVM内存结构
静态方法多次调用内存_JVM内存结构图(1.8之后发生了什么)相关推荐
- java jvm 查看内存_JVM内存状况查看方法和分析工具(下)
从以上信息中可看出JVM堆的配置信息,如NewSize.NewRatio.SurvivorRatio等:JVM堆的使用情况,新生代中的Eden Space.From Space.To Space的使用 ...
- java 32位可用内存_JVM内存不要超过32G
1.将Java Heap Size设置的大于32G会对性能有什么影响? 开门见山的说,结果有几点(这几点其实也是内部关联): 触发JVM的临界值,优化策略Compressed OOPS失效(之前Hea ...
- java 内存回收参数_JVM常用参数(内存分配 内存回收日志)(七)
内存监控 -verbose:gc 测试代码 public static voidmain(String[] args){ List classes=new ArrayList();int count= ...
- 元空间和直接内存_JVM探秘:Java内存区域
本系列笔记目前主要基于<深入理解Java虚拟机:JVM高级特性与最佳实践 第2版>,后续还会加入<实战Java虚拟机:JVM故障诊断与性能优化>.<Java性能权威指南& ...
- jvm内存模型_JVM内存模型的相关概念
1.前言 Android的虚拟机是根据移动设备的特点基于Java虚拟机(JVM)改进而来,虽然没有保留规范,但作为Java语言的使用者,了解一下JVM的规范还是有必要的. 2.JVM内存模型 JVM在 ...
- java 内存调优_JVM内存模型以及性能调优
JVM 内存模型 JVM.png 程序计数器 程序计数器是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器.分支.循环.跳转.异常处理.线程恢复等基础功能都需要依赖这个计数器来完成. ...
- 单个对象和多个对象在内存中的结构图
单个对象在内存中的结构图: 多个对象在内存中的结构图: (注:图片来至http://www.itheima.com/ 视频教程截图,转载请说明出处)
- php curl 内存 设置,curl out of memory window下PHP调用curl报内存不够
本文章来给大家介绍关于在window下PHP调用curl报内存不够(curl out of memory)错误的解决办法,有碰到此类问题的朋友可参考. 今天在调用新浪微博api的时候(官网下载的sdk ...
- Memkind 例程1 调用memkind_malloc()分配内存
例程1 调用memkind_malloc()分配内存 Key: void *memkind_malloc(memkind_t kind, size_t size); // 用于分配内存,完成后得到 ...
最新文章
- windows server 远程桌面安装和配置
- Apache 与tomcat实现分布式应用部署
- 《深入浅出数据分析》第十三章
- 【MFC系列1】之简单Win32程序
- 装箱和拆箱、类型比较
- 屏幕画线软件ZOOMIT
- 【Linux系统】第2节 虚拟机中安装Kali系统
- 成都高新南区 高新西区 东部新区 多边形范围点位 AOI 高德
- 为什么说“人生苦短,我用Python”?
- Rust游戏引擎Bevy初探
- 【Linux命令篇】文档笔记
- Calculate a+b
- XP局域网共享设置图文教程
- 民政部:汶川地震救灾困难比较多
- 戴维营教育-Swift语言中文教程和配套视频教程更新中
- long long int 和 int
- JavaScript匿名函数(自调用函数)
- 【ceph】AsyncMessenger 通信模块基础--编辑中
- transformer机制讲解_从发展历史视角解析Transformer:从全连接CNN到Transformer
- kafka receiving network data closing socket
热门文章
- 《Python cookbook》笔记二
- 阿里天池用Pandas揭秘美国选民的总统喜好附加题
- 卷积过滤器的宽度_卷积神经网络简析
- Jupyter notebook最简原型界面设计 - ipywidgets与lineup_widget
- python︱处理与使用json格式的数据(json/UltraJSON/Demjson)、pickle模块、yaml模块
- python︱Python进程、线程、协程详解、运行性能、效率(tqdm)
- Centos7安装NVIDIA的驱动的坑
- 文本预处理及keras的学习
- RedHat Enterprise Linux 5下安装firefox
- 文档内容结构化技术探索