Java虚拟机
Hollake
这个作者很懒,什么都没留下…
展开
-
JVM找出占用CPU最高的线程
这篇文章写的比较清晰可以看一下JVM找出占用CPU最高的线程转载 2019-05-08 17:33:46 · 845 阅读 · 0 评论 -
如何在Windows系统下的获得线程堆栈(Thread Dump)分析问题
线程转储是一个JVM活动线程的列表,它对于分析系统瓶颈和死锁非常有用。首先介绍一下jdk自带的三个小工具jdk自带工具 jps 显示指定系统内所有的HotSpot虚拟机线程 jmap 生成虚拟机的内存转储快照 jstack 显示虚拟机的线程快照 现在实验一个简单死锁程序,程序示例可以直接查看Java很简单的死锁例子。那么如何生成内存转储快照...原创 2019-05-07 23:17:41 · 3658 阅读 · 0 评论 -
Java虚拟机学习 - 查看JVM参数及值的命令行工具
原文:https://blog.csdn.net/java2000_wl/article/details/8042010查看JVM各个参数值方式1.-XX:+PrintFlagsInitial参数显示所有可设置参数及默认值,可结合-XX:+PrintFlagsInitial与-XX:+PrintFlagsFinal对比设置前、设置后的差异,方便知道对那些参数做了调整。2.-X...转载 2019-05-22 11:26:56 · 2566 阅读 · 0 评论 -
GC日志分析以及相关基础知识
前言最近在学习JVM的相关知识,今天来实践一下如何阅读分析GC日志。下面我们来看一个例子,创建1000个60kb大小的对象,将他们添加到list中,设置参数打印出GC,再结合jdk自带的VirsualVM来进行学习分析。我用的是idea,如果是eclipse的话也是大同小异的,方法如下:首先在运行前点击Edit Configurations-->VM options:接着对参数进行设置。...原创 2019-05-23 16:18:02 · 351 阅读 · 0 评论 -
Full GC触发条件总结以及解决策略
前言Full GC相对于Minor GC来说,停止用户线程的STW(stop the world)时间过长,至少慢10倍以上,所以要尽量避免,首先说一下Full GC可能产生的原因,接着给出排查方法以及解决策略。Full GC产生原因下图为与产生Full GC相关的内存区域,初生代、老年代、以及Metaspace区域。System.gc()方法的调用在代码中调用System...原创 2019-05-23 22:09:06 · 18396 阅读 · 3 评论 -
讲一下Java的虚拟机
讲一下Java的虚拟机 这个问题这样问太大了,今天看到有问这个问题,我在想应该怎么回答,我认为可以先对JVM内存区域进行介绍,讲到堆以后就顺带着讲垃圾回收算法,既然要垃圾回收,那么怎么判断对象已死?,那么接着可以讲一下常见或者自己熟悉的垃圾回收器。我觉得这样应该就差不多了首先对于JVM的内存区域来说,分为程序计数器,虚拟机栈,本地方法栈,堆和永久代,在JDK1.8中取消了永久代...原创 2019-06-25 18:15:40 · 224 阅读 · 0 评论 -
JDK1.7和JDK1.8的内存模型比较
由于网上文章态鱼龙混杂,完全不知道哪个是对的,在查阅资料以及翻阅很多文章后做一个自己认为是对的总结,如有错误请您指出来,谢谢JDK1.7内存模型对于这五个区域我大概做一个大概介绍,详细情况可以查阅其他资料或者文章程序计数器:线程私有,可以看做当前程序执行的行号指令器。Java虚拟机栈:线程私有,生命周期与线程相同,虚拟机栈描述的是Java方法执行的内存模型,每个方法在执行时会形...原创 2019-06-18 13:31:28 · 6412 阅读 · 4 评论