JVM调优(保姆级总结)

本文详细探讨了JVM的工作原理、组成,以及遇到性能问题时进行调优的原因。JVM调优的基本原则强调了代码和架构优化的重要性,调优目标包括减少内存占用、降低延迟和提高吞吐量。通过量化目标和调优步骤,指导如何进行JVM参数调整以优化内存、延迟和吞吐量。文章还提供了具体的JVM参数解析和调优示例,帮助开发者更好地理解和优化JVM性能。
摘要由CSDN通过智能技术生成

JVM原理初探

原理初探:

HelloWorld是如何编译运行的?

1.Javac命令是通过Java同居转换成字节码文件,因为计算机是不认识javac的只认识0101。

2.通过Java虚拟机编译字节码文件

3.再把Java字节码文件进入对应JVM

JVM组成

总结:

问题一:JVM的组成?

1.类加载子系统

2.JVM运行时数据区

3.指定引擎

在main方法中运行输出以及调用其他方法输出结果,这是由谁执行的?

可以在mian方法中进行debag调试,发现是由main()方法这个线程执行的。

问题二:那么我如果在main()方法里面调用其他方法,那么这些方法都存在哪里呢?

肯定是存放在方法区的,因为方法区是存储已经被虚拟机加载的数据

栈区主要存储局部变量(还有其他信息)方法代码都是存在方法区中的,不然每个对象都存相同的实例方法,会浪费大量内存静态方法储存在方法区,实例方法存储在堆区

 

 

JVM性能调优详解

调优原因:

遇到以下情况,就需要考虑进行JVM调优了:

  • Heap内存(老年代)持续上涨达到设置的最大内存值; (属于堆中的内存达到最大内存值)

  • Full GC 次数频繁; (垃圾回收机制,主要针对java heap)

  • GC 停顿时间过长(超过1秒); (一般加内存或者释放更多的线程)

  • 应用出现OutOfMemory 等内存异常; (内存泄露与内存溢出)

    内存溢出:申请内存时,没有足够的内存使用

    内存泄露:无法释放已经申请的内存空间,一次性内存危害库忽略,但堆积,无论多少内存迟早被吃光

  • 应用中有使用本地缓存且占用大量内存空间;

  • 系统吞吐量与响应性能不高或下降。

JVM调优的基本原则(注意的)

小项目一般是不需要调优的

JVM调优是一个手段,但并不一定所有问题都可以通过JVM进行调优解决,因此,在进行JVM调优时,我们要遵循一些原则:

  • 大多数的Java应用不需要进行JVM优化;

  • 大多数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值