JVM深度解析:内存管理与垃圾回收
需积分: 9 113 浏览量
更新于2024-08-18
收藏 2.45MB PPT 举报
"本次部门分享主要探讨了JVM在实际应用中的重要性和各种细节,由邢晓兵在2016年12月的房产技术部进行分享。内容包括Java运行原理、内存区域划分、垃圾回收机制以及如何进行JVM调优。"
### Java运行原理
Java程序的执行分为几个步骤:
1. **Java源代码**,如`Dog.java`,首先由**Java编译器**(javac)编译成字节码文件`Dog.class`。
2. 使用`java`命令启动JVM,例如`java -Xms4g -Xmx4g com.fangchan.xxb.Dog`,其中`-Xms`和`-Xmx`分别设置JVM初始堆内存和最大堆内存。
3. **内存分配**:在JVM中,内存被划分为几个主要区域,包括**Method Area(方法区)**存储类的信息,**Stack(栈)**存储线程局部变量,以及**Heap(堆)**用于存储对象实例。
### JVM内存结构
- **Method Area**:存放类的信息,如类名、常量池、字段和方法数据等。
- **Stack**:每个线程都有自己的程序计数器、虚拟机栈和本地方法栈,用于存储方法调用的局部变量和计算结果。
- **Heap**:对象实例都在堆中创建,通过垃圾回收机制管理内存。
### 垃圾回收(GC)
- **GC何时进行**:当内存不足或达到特定条件时,JVM会启动垃圾回收。
- **GC在哪进行**:主要针对Heap区域,清理不再使用的对象。
- **GC做什么**:识别并释放无引用的对象,以便回收内存。
- **GC如何进行**:包括多种算法,如**标记清除**、**复制算法**、**标记整理**等。
### 常见垃圾回收器
- **年轻代**(Young Generation)GC(YGC):频繁进行,回收新生代中的垃圾。
- **老年代**(Tenured Generation)GC(FGC):较少发生,回收老年代中的垃圾。
### JVM调优
- 调优目标:尽量减少Full GC,确保应用稳定运行。
- 方法一:初期不设参数,让JVM自适应调整,然后根据长期运行情况设定堆大小。
- 方法二:根据应用特点,适当设置堆大小,使eden、survivor和old generation满足需求。
### 调整策略
- 减少`initiatingOccupancyFraction`以降低触发Full GC的阈值。
- 调整年轻代和生存区大小,优化对象晋升策略。
- 减少垃圾生成,如减少线程数、控制对象创建。
### 监控工具
- **jstack**:查看线程状态,帮助分析死锁或阻塞问题。
- **jmap**:提供内存快照,如`-dump`生成heap dump,`-histo:live`统计对象分布,但可能影响应用。
### 应用实践
分享还提到了线上详情页的FGC情况,以及不同线程状态的分析,结合`jmap`和`Eclipse Memory Analyzer`等工具,深入理解堆上的对象状态,有助于优化JVM配置,提高应用性能。
这次分享深入探讨了JVM的实际运用,强调了正确理解和调优JVM对于优化Java应用性能的重要性。通过理解Java运行机制,掌握垃圾回收的工作原理,以及有效利用监控工具,开发者可以更好地管理应用的内存,减少性能瓶颈,提升系统稳定性。
2019-08-08 上传
2015-09-22 上传
2023-09-09 上传
2009-03-27 上传
2012-02-07 上传
2010-01-13 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
西住流军神
- 粉丝: 31
- 资源: 2万+
最新资源
- MaterialDesign
- weather-data-analysis:R.的学校项目。天气数据的探索性数据分析
- function_test
- hex-web-development
- scrapy-poet:Scrapy的页面对象模式
- unigersecrespon,c语言标准库函数源码6,c语言
- 红色大气下午茶网站模板
- 流媒体:一个免费的应用程序,允许使用无限的频道进行流媒体播放
- Project-17-Monkey-Game
- TIP_Project:python中的简单语音通信器
- 分布式搜索引擎-学习笔记-3
- Project-68-to-72
- 2015-01-HUDIWEB-CANDRUN:金正峰、高艺瑟、裴哲欧、善胜铉
- B-Mail:B-MAIL是基于交互式语音响应的应用程序,它为用户提供了使用语音命令发送邮件的功能,而无需键盘或任何其他视觉对象
- prececfnie,删除c盘文件c语言源码,c语言
- cursos-rocketseat-discover:探索世界,了解更多Rocketseat