06-JVM-眼熟能聊

JVM 为什么进行内存区?

随着对象数量的增加,JVM 内存使用率也在增加,如果 JVM 内存使用率达到 100%, 则无法继续运行程序。为了让 JVM 内存可以被重复使用,需要进行垃圾回收。为了提高垃圾回收的效率,JVM 将内存区域进行了划分

方法区中的方法的执行过程?

垃圾回收算法哪个阶段会stop the world?(坑)

GC只会对堆进行GC吗?(坑)

JVM调优

JVM调优的常用命令有哪些?

常用命令:

1、jps:查看进程及其相关去信息

2、jmap:用来生成dump文件和查看堆相关的各类信息的命令。

3、jstat:查看jvm运行时的状态信息

4、jstack:查看jvm线程快照的命令

5、jinfo:查看jvm参数和动态修改部分jvm参数

常用参数:

1、-Xms:初始化堆大小

2、-Xmx:最大堆大小

3、-Xmn:新生代的内存空间大小

4、-XX:SurvivorRatio

5、-Xss:每个线程的堆栈大小

6、-XX:PermSize:设置永久代初始值

7、- XX:MaxPermSize:设置永久代最大值

如果我要在 JVM 上跑一个项目,JVM 参数一般怎么设置?

JVM 参数的设置取决于项目的需求和性能要求。以下是一些常见的 JVM 参数设置建议:

  • 堆内存设置:使用-Xmx-Xms参数设置堆的最大初始大小。例如,设置为-Xmx1024m和-Xms512m将分配1GB的最大堆和512MB的初始堆。
  • 垃圾回收器选择:根据项目的需求选择合适的垃圾回收器。可以使用-XX:+UseParallelGC启用并行垃圾回收器,-XX:+UseConcMarkSweepGC启用并发标记清除垃圾回收器,或-XX:+UseG1GC启用G1垃圾回收器。
  • 并发线程数设置:使用-XX:ParallelGCThreads参数设置并行垃圾回收器的线程数。例如,-XX:ParallelGCThreads=4将设置4个并行线程。
  • 线程栈大小设置:使用-Xss参数设置线程栈的大小。例如,-Xss256k将设置线程栈大小为256KB。
  • 类加载优化:使用-XX:+UseFastClassInitialization参数启用快速类加载初始化。这可以提高类加载的性能。
  • GC 日志设置:使用-XX:+PrintGC和-XX:+PrintGCDetails参数启用详细的垃圾回收日志。这对于调试和性能分析很有帮助。
  • 其他性能调优参数:还有许多其他的JVM参数可以根据项目需求进行调整,例如-XX:MaxMetaspaceSize设置元空间的最大大小,-XX:CompileThreshold设置JIT编译的阈值等。

请注意,以上参数只是一些常见的设置建议,具体的设置应该根据项目的需求和性能测试结果进行调整。

2 JVM异常问题?

StackOverflowError(线程请求栈深度超过虚拟机所允许的最大深度)
OutOfMemoryError(堆内存不够用)
PermGen space(方法区内存不够用)

对于一个jvm来说,锁创建的最大线程数量是多少?

JVM 创建的最大线程数量取决于操作系统的限制JVM 堆内存配置以及每个线程的栈大小。理论上,最大线程数由可用内存和每个线程栈的大小决定,通常情况下操作系统和内存会成为限制因素,而 JVM 本身没有硬性限制。

Full GC介绍一下?

Full GC 是对整个 Java 堆(新生代 + 老年代,在 Java 8 前还包括永久代/元空间)进行的全面垃圾回收,采用标记–清除或标记–整理算法,需暂停所有线程,停顿时间较长。

频繁minor gc怎么办?

频繁的 Minor GC 通常意味着新生代中的对象频繁地被垃圾回收,可能是因为新生代空间设置的过小,或者是因为程序中存在大量的短生命周期对象(如临时变量)。

可以使用 GC 日志进行分析,查看 GC 的频率和耗时,找到频繁 GC 的原因。

频繁的Full GC怎么办?

频繁的 Full GC 通常意味着老年代中的对象频繁地被垃圾回收,可能是因为老年代空间设置的过小,或者是因为程序中存在大量的长生命周期对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SrmaticHai_NEU_J

觉得对您有帮助请我喝喝阔落!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值