- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
浅析HotSpot内存管理与分析工具
蒋运军
2014-4-15
Java运行数据区
Java运行数据区-虚拟机栈
平时工作中能接触到栈帧吗?
Java运行数据区-方法区
用于存放类的结构信息,包含运行时常量池(Runtime Constant Pool)、字段和方法数据、构造函数和普通方法的字节码内容等
HotSpot内存管理-分代管理
分代理论依据:weak generational hypothesis(弱代假说)
大多数对象早死
老对象很少引用新对象.
HotSpot将堆分为新生代,老年代
方法区由持久代实现
HotSpot内存管理-新生代
为什么新生代是长这个样子的呢?
因为新生代的对象98%都是朝生夕死,采用复制算法效率最高
Eden分配空间采用bump-the-pointer TLAB(Thread-Local Allocation Buffers)
HotSpot内存管理-老年代
什么情况下新生代对象会进入老年代呢?
足够老
minorGC时Survivor区域无法容纳
实例化大对象时
HotSpot垃圾收集
什么是垃圾?
通过可达性分析,确定哪些对象不可达即为垃圾对象
HotSpot垃圾收集器-串行收集器
串行收集器(Serial)采用串行的方式垃圾收集,适用于新生代,老年代,持久代的垃圾收集
在垃圾收集期间,stop-the-world。
HotSpot垃圾收集器-并行收集器
ParNew收集器是Serial的多线程版本,用于新生代垃圾回收
Parallel Scavenge收集器也是并行的多线程新生代收集器,由于其关注点在于吞吐量,又称之为吞吐量收集器,收集器通过动态调整新生代中Eden和Survivor比例以达到最大GC暂停时间,吞吐量指标
Parallel Old收集器用于老年代或者持久代的并行的多线程收集器
HotSpot垃圾收集器-并发收集器
HotSpot垃圾收集器-CMS收集器
HotSpot垃圾收集器-G1
管理整个GC堆
整个GC堆被划分为大小相等的region
在垃圾回收时优先回收利用价值大的region,即能释放出更大的内存空间
并行与并发
可预测的停顿
命令行分析工具
Jps(JVM Process Status Tool)
功能类似于linux系统中的ps
Jmap
用于获取heap快照,堆信息,持久代信息等
Jstat(JVM Statistics Monitoring Tool)
用于监控虚拟机的各种运行状态
jinfo
实时地查看和调整虚拟机各项参数
jhat
分析堆快照的工具
可视化分析工具
Jconsole
JvisualVM
MAT
案例分析-网站宕机
背景:2013年11月网站宕机,resin假死无响应
现象:
原因:
爬虫太厉害了—确实比较厉害
通过threaddump得知活动线程增加真实原因
案例分析-加盟店商品同步
负载:
原因:系统运行久了越跑越慢,重启就貌似负载下来了
通过heapdump分析
FAQ
FAQ
参考资料
JVM:
《java虚拟机规范》
《深入java虚拟机》
《深入理解java虚拟机:jvm高级特性与最佳实践》
/technetwork/java/javase/memorymanagement-whitepaper-150215.pdf
/technetwork/java/javase/gc-tuning-6-140523.html
GC:
????/technetwork/java/javase/tech/index-jsp-140228.html
????G1:/docsGarbage-First-Low-Latency-High-Throughput-Garbage-Collection
? ? ? ? ? ? ? ?/technetwork/java/javase/tech/g1-intro-jsp-135488.html
? ? ? ? ? ? /cn/articles/jdk7-garbage-first-collector#anch75994
分析工具:
????/javase/1.5.0/docs/tooldocs/
? ? mat:/kepler/index.jsp?topic=%2Forg.eclipse.mat.ui.help%2Fwelcome.htmlcp=38
最后
有空可以多参加社区活动
OpenPartyChengdu
Qclub
WinClub
双周组织一次交流活动
非正式
技术,生活,游戏。。。。
最最后
给大家分享一个Thoughtworks员工分享的看书路线
多看书多分享还是很有好处的
谢谢大家
文档评论(0)