做好性能测试必须要会的jvm—Testfan打卡学测开1120
Posted 自动化软件测试
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了做好性能测试必须要会的jvm—Testfan打卡学测开1120相关的知识,希望对你有一定的参考价值。
分享内容:
深入了解jvm
本期语音讲解
JVM是Java Virtual Machine(Java虚拟机)的缩写。
JVM由堆、栈、本地方法栈、方法区等部分组成,
堆:通过new创建的对象的内存都在堆中分配,
堆的大小可以通过最大堆内存和初始时堆内存来控制;
堆被划分为新生代和旧生代,新生代又被进一步划分为Eden和Survivor区,
最后Survivor由From Space和To Space组成
新生代大小可以由-Xmn来控制,
也可以用-XX:SurvivorRatio来控制Eden和Survivor的比例,
旧生代:用于存放新生代中经过多次垃圾回收仍然存活的对象,
持久带:实现方法区,
主要存放所有已加载的类信息,方法信息,常量池等等,
可通过-XX:PermSize和-XX:MaxPermSize来指定持久带初始化值和最大值。
JVM常见配置:
-Xmx:最大堆内存
-Xms:初始时堆内存
-XX:NewSize=n初始时年轻代大小
通常为 Xmx 的 1/3 或 1/4。新生代 = Eden + 2 个 Survivor 空间。
实际可用空间为 = Eden + 1 个 Survivor,即 90%.
-XX:MaxNewSize最大年轻区内存
-XX:PermSize:初始时持久带内存
-XX:MaxPermSize=n最大持久代大小
-XX:NewRatio=n:年老代和年轻代的比值
如 –XX:NewRatio=2,则新生代占整个堆空间的1/3,老年代占2/3
-XX:SurvivorRatio 新生代中 Eden 与 Survivor 的比值
默认值为 8。即 Eden 占新生代空间的 8/10,另外两个 Survivor 各占 1/10
jvm内存调优:
对JVM内存的系统级的调优主要的目的是减少GC的频率和Full GC的次数,
过多的GC和Full GC是会占用很多的系统资源(主要是CPU),影响系统的吞吐量。
-XX:+PrintGCDetails。打印 GC 信息
推荐阅读:
以上是关于做好性能测试必须要会的jvm—Testfan打卡学测开1120的主要内容,如果未能解决你的问题,请参考以下文章
面试只会冒泡排序?教你一个比冒泡排序还简单的排序算法!-Testfan打卡学测开1011