博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《Java程序性能优化》学习笔记 JVM调优
阅读量:5960 次
发布时间:2019-06-19

本文共 902 字,大约阅读时间需要 3 分钟。

第五章 JVM调优

5.1 Java虚拟机内存模型
1.JVM虚拟机将其内存数据分为程序计数器、虚拟机栈,本地方法栈,Java堆,和方法去等部分。

2.Java虚拟机栈,在Java 虚拟机规范中,定义了两种异常与占空间相关,即StackOverError和OutOfMemoryError。如果线程在计算过程中,请求的栈深度大于最大可用的栈深度,则抛出SOE,如果Java栈可以动态扩展,而在扩展栈的过程中,没有足够的内存空间来支持栈的扩展,则抛出OutOfMemoryError。

栈的大小直接决定了函数调用的可达深度。
如:

public class StackOverTest {    private int count=0;    public void recursion(){
//没有出口的递归函数 count ++; //计数加一 recursion(); } @Test public void stest(){ try{ recursion();//递归调用 }catch(Throwable t){ //打印栈的深度 System.out.println("the depth of stack is "+count); t.printStackTrace(); } }}

 使用-Xss修改栈的大小后,函数调用深度明显上升。

5.2 JVM内存分配参数
5.3 垃圾收集基础

1.主要的垃圾收集算法:

引用计数法(Reference Counting),实现简单,对于一对象A,只要有任何一个对象引用了A,则A的引用计数器就加1,当引用失效时,引用计数器减1。只要对象A的引用计数器的值为0,则对象A不能再被使用。
但是由于无法解决循环引用的情况。
标记-清除算法(Mark-Sweep),

5.4 常用调优案例和方法
5.5 使用JVM参数
5.6 实战JVM调优

转载地址:http://wwfax.baihongyu.com/

你可能感兴趣的文章
吴恩达机器学习系列18:核函数
查看>>
Java内存区域和内存模型
查看>>
写python 报错 IndentationError:unindent does not match any outer indentation level
查看>>
iOS 黑魔法 runtime 消息转发 ---附Demo
查看>>
在MySQL中,不要使用“utf8”。使用“utf8mb4”
查看>>
了解 IT 认证价值
查看>>
关于安卓的ViewStub,我有几句话想说。。。
查看>>
Android AOSP基础(一)趁周末用VirtualBox 安装 Ubuntu吧
查看>>
python学习笔记-5.13
查看>>
vuecli3创建项目
查看>>
版本控制工具——Git常用操作(上)
查看>>
5分钟构建无服务图片鉴黄web应用(基于FunctionGraph)
查看>>
神经科学研究所开发AI动作捕捉工具 以高精准度追踪动物动作
查看>>
vue组件之Tabs标签页
查看>>
ES6之变量的解构赋值
查看>>
用localStorage存储购物车数据实战
查看>>
“一带一路”为会展业带来新机遇
查看>>
Spring详解
查看>>
Go defer 知识点
查看>>
【本人秃顶程序员】如何在代码中应用设计模式
查看>>