hotpot的永久代一点想法
来源:互联网 发布:数据字段进行etl拆分 编辑:程序博客网 时间:2024/06/06 02:44
我终于明白了为什么有的FULL GC是针对永久代,有的full gc是带有方法区全部的gc了。因为我们现在用的虚拟机普遍是sun hotpot,它就是使用永久代来实现方法区的,这样jvm就能像管理java堆一样去管理这部分内存,而不需要再重新写管理内存的代码了。而其他的jvm如 jrockit,j9根本就没有永久代这个东西。。。
新生代,永久代,方法区只是java虚拟机规范里的官方模型,至于如何去实现,是由生产厂商确定的。。。方法区虽然是堆得一个逻辑部分,但他还有个名字叫做,non-heap。所以跟堆还是不一样的。
而且hotpot把方法区放到永久代去处理不太好,因为永久代有一个参数:-XX:MaxPermSize,这个参数是来描述永久代的内存上限值,这样的话更容易遇到内存溢出的问题,如果物理机内存比较小的时候,这样是肯定会出问题的。。。相反jroket,j9就不会有这样的问题,方法区是用来存类的结构的,比如static变量,常量,jit代码等等,这都是程序代码中非常重要而且是跟着Jvm生命周期一起走得东西,这些要是内存溢出了。。。整个程序就完蛋了~尤其是32bit机。。。本来就不够放对象头对象实例。。。
当然,我想Hotpot这么普及,肯定有我不知道的解决方法或者现在的机器都太好了。。。或者我没有写过大的类导致永久代都不够放~哎~啥时候能让我试试就好了~
0 0
- hotpot的永久代一点想法
- jvm的永久代
- java的新生代 老年代 永久代
- 玩萨尔达的一点想法
- MVC的一点想法
- svn 的一点想法
- 最近的一点想法
- 缓存的一点想法
- 一点零星的想法
- 最近的一点想法
- 自下而上的一点想法
- 最近的一点想法
- 职业生涯规划的一点想法
- 老码农的一点想法
- Fragment的一点想法
- 最近的一点想法
- 管理的一点想法
- 一点简单的想法
- centos7防火墙导致java程序访问mongodb3.0.1时报错的问题
- JAVA学习笔记(五十九)- Socket编程
- HDOJ 1210 Eddy的洗牌问题 题解
- 5.3.4 变量的使用规则
- char **argv与char *argv[]
- hotpot的永久代一点想法
- iOS中图片拉伸的方法
- JAVA学习笔记(六十)- 网络编程登录实例
- Java产生900个1到1000不重复的随机数
- JTable 如何设置表格的列宽
- JAVA学习笔记(六十一)- 反射Reflection
- maven学习笔记二
- 动态链接
- 正方形划分【dfs】