做好性能测试必须要会的jvm—Testfan打卡学测开1120

Posted 自动化软件测试

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了做好性能测试必须要会的jvm—Testfan打卡学测开1120相关的知识,希望对你有一定的参考价值。


本期技术分享讲师   恨水老师

分享内容

深入了解jvm

本期语音讲解

本期文字解析
       

做好性能测试必须要会的jvm—Testfan打卡学测开1120

做好性能测试必须要会的jvm—Testfan打卡学测开1120

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),影响系统的吞吐量。

做好性能测试必须要会的jvm—Testfan打卡学测开1120

-XX:+PrintGCDetails。打印 GC 信息


推荐阅读:














以上是关于做好性能测试必须要会的jvm—Testfan打卡学测开1120的主要内容,如果未能解决你的问题,请参考以下文章

面试只会冒泡排序?教你一个比冒泡排序还简单的排序算法!-Testfan打卡学测开1011

jsonpath原来这么简单!—Testfan打卡学测开1228

软件测试人必须要会的——pytest单元测试框架

你必须要会的测试用例基本功

小白必须要会的Github操作 确定不进来看看?

这10个你必须要会的测试工具,不会真不行