JVM
交流JVM知识
西兹兹
这个作者很懒,什么都没留下…
展开
-
Java的字符串为什么挪到了堆里?
我们知道的2个事实:1 字符串的值是放在常量池里的2 hotspot vm在jdk1.7之前,常量池是放在方法区(堆外的永久代)java在jdk1.7开始, 字符串挪到了堆里, 这么做的目的是什么?1 堆内回收效率高: 堆外的方法区的内存(Class)回收效率(可回收比例和执行时间成本)不如堆内2 永久代/元数据区一般不会设置一个很大的值.永久代/元数据区由于(字符串...原创 2020-01-05 18:43:51 · 964 阅读 · 0 评论 -
Java内存溢出的原因有哪些?Java进程占用内存构成有哪些?
很多人的理解是,Java进程占用的内存就是堆内存占用,再进一步就是Perm/元数据区的占用。Java面试宝典里的,大多点到这为止,其实真实情况远远不是这样的。如果持有以上观点,那么服务器上出现OOM,一点儿也不奇怪。了解Java进程的内存构成,对固定服务器内存的设置有帮助。Java程序耗费内存:内存占用=堆+方法区+程序计数器(可以忽略不计)+虚拟机进程本身+虚拟机栈(线程原创 2017-03-14 11:56:49 · 2034 阅读 · 0 评论 -
Full GC为什么那么慢?为什么老年代垃圾回收效率比新生代低很多?为什么Minor gc速度比Major GC慢?
GC类型分为三种:Yong GCOld GCMIXED GCFull GC(有些文章和书上也叫Minor GC、Major GC、Full GC,由于Major GC的意思有些混淆,所以改成Old GC容易理解)GC回收的“无用的类”(元数据区):1、该类所有的实例都已经被回收,也就是Java堆中不存在该类的任何实例2、加载该类的 ClassLoader已经原创 2017-04-12 08:08:42 · 9316 阅读 · 4 评论 -
JVM监控分析方法总结,JVM监控分析工具推荐,JVM监控命令,JVM监控工具大全
JVM监控方法和监控工具网上介绍的很多,大家关心的大部分内容可能是“内存去哪儿了”,以下是个人的总结和心得。分析方式:实时监控事后时候堆快照、线程栈分析事后多个堆快照对比分析飞行记录,一段时间的运行变化,有点像飞机出事后的“黑匣子”数据观察方式:命令行、日志文本文件观察分析可视化图形界面分析是否免费:免费版。(整体上比商业版稍微逊原创 2017-03-14 11:37:02 · 3962 阅读 · 0 评论