【面试】性能测试-jvm常见的几个问题

 一、什么是JVM

        JVM 是 Java Virtual Machine(Java 虚拟机)的缩写。JVM 由堆、栈、本地方法栈、方法区等部分组成, 堆:通过 new 创建的对象的内存都在堆中分配, 堆的大小可以通过最大堆内存和初始时堆内存来控制; 堆被划分为新生代和旧生代,新生代又被进一步划分为 Eden 和 Survivor 区,最后 Survivor 由 From Space 和 To Space 组成 新生代大小可以由-Xmn 来控制, 也可以用-XX:SurvivorRatio 来控制 Eden 和 Survivor 的比例, 旧生代:用于存放新生代中经过多次垃圾回收仍然存活的对象

二、JVM的原理:

        JDK<->JRE<->JVM,具体关系如下图s

 最后 Survivor 由 From Space 和 To Space 组成 新生代大小可以由-Xmn 来控制, 也可以用-XX:SurvivorRatio 来控制 Eden 和 Survivor 的比例, 旧生代:用于存放新生代中经过多次垃圾回收仍然存活的对象

三、JVM常见设置

        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 信息

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值