jvm小结

1.jvm组成部分:类加载器,运行数据区也就是内存,字节码执行引擎
2.虚拟机栈也就是线程栈,jvm给方法单独开辟一个空间,栈针可以理解为栈的id
3.先分配的内存最后释放
4.操作数栈是给放入栈的局部变量赋值运算的临时栈
5.程序计数器的值是由执行引擎修改的
6.栈里面有栈针,通过指针引用就可以找到堆里面的对象
7.本地方法栈的空间也是在线程栈里
8.元空间里是常量静态变量,类信息
9.对象先存到eden区 满了之后由执行引擎开启垃圾收集minor gc
10.可达性分析也就是以gc root 查找对象引用,有引用的对象被标记然后放到survior区,
每次gc的对象年龄就加1,超过15就进入老年代
11.老年代满了触发full gc 如果不能回收就oom了
12.Jvm调优是减少full gc通过减少full gc 避免stw
13.之所以设计stw目的是查找gc对象,保证对象的正常状态
14对象变量的计算=类型属性之和一般不超过一个对象不超过1kb
15.例如每秒60m的对象放入eden
16大的对象可能直接放入老年代触发full gc
解决办法:调大新生代内存
17 G1把内存分为各个小块,这样清理和插入并行,效率提高,不会出现stw

18.三种回收内存的方法
1.ms ,copy,mc copy效率最高不会产生碎片
2.G1

上一篇:构建LNMP+WordPress


下一篇:pyqt webview 执行js