![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java技术体系之--JVM虚拟机
文章平均质量分 81
keep_trying_gogo
千万不要在最能吃苦的年纪选择安逸,与君共勉。
展开
-
JVM(八)jstack
java jvm常用命令工具——jstack命令(Java Stack Trace)1.介绍Stack Trace for Java,用于生成虚拟机当前的线程快照信息,包含每一条线程的堆栈信息。该命令通常用于定位线程停顿原因,当出现线程停顿时,可通过stack查看每个线程的堆栈信息,进而分析停顿原因。jstack用于打印出给定的java进程ID或core file或远程调试服务的J原创 2017-12-13 16:41:31 · 291 阅读 · 0 评论 -
JVM(七)jmap
jmap命令(Java Memory Map)1.介绍打印出某个java进程(使用pid)内存内的所有‘对象’的情况(如:产生那些对象,及其数量)。可以输出所有内存中对象的工具,甚至可以将VM 中的heap,以二进制输出成文本。使用方法 jmap -histo pid。如果连用shell jmap -histo pid>a.log可以将其保存到文本中去,在一段时间后,使用文本对比工原创 2017-12-13 16:24:56 · 452 阅读 · 0 评论 -
JVM(六)jstat
1.介绍Jstat用于监控基于HotSpot的JVM,对其堆的使用情况进行实时的命令行的统计,使用jstat我们可以对指定的JVM做如下监控:类的加载及卸载情况查看新生代、老生代及metaSpace的容量及使用情况查看新生代、老生代及metaSpace的垃圾收集情况,包括垃圾回收的次数及垃圾回收所占用的时间查看新生代中Eden区及Survior区中容量及分配情况等jstat工具原创 2017-12-13 15:30:43 · 3629 阅读 · 0 评论 -
JVM(五)jps
jps 虚拟机进程状态工具1.介绍用来查看基于HotSpot的JVM里面中,所有具有访问权限的Java进程的具体状态, 包括进程ID,进程启动的路径及启动参数等等,与unix上的ps类似,只不过jps是用来显示java进程,可以把jps理解为ps的一个子集。使用jps时,如果没有指定hostid,它只会显示本地环境中所有的Java进程;如果指定了hostid,它就会显示指定host原创 2017-12-13 14:30:31 · 343 阅读 · 0 评论 -
JVM(四)Java垃圾收集器
一、相关概念并行(Parallel):指多条垃圾收集线程并行工作,但此时用户线程仍然处于等待状态。并发(Concurrent):指用户线程与垃圾收集线程同时执行(但不一定是并行的,可能会交替执行),用户程序在继续运行。而垃圾收集程序运行在另一个CPU上。吞吐量(Throughput):就是CPU用于运行用户代码的时间与CPU总消耗时间的比值,即吞吐量 = 运行用户代码时间 /(运行用原创 2017-12-12 17:13:23 · 387 阅读 · 0 评论 -
JVM(三)Java垃圾收集(Garbage Collection)简介
一、 垃圾收集简介顾名思义,垃圾收集(Garbage Collection)的意思就是 —— 找到垃圾并进行清理。但现有的垃圾收集实现却恰恰相反: 垃圾收集器跟踪所有正在使用的对象,并把其余部分当做垃圾。记住这一点以后, 我们再深入讲解内存自动回收的原理,探究 JVM 中垃圾收集的具体实现, 。 我们不抠细节, 先从基础开始, 介绍垃圾收集的一般特征、核心概念以及实现算法。 免责声明: 本原创 2017-12-11 17:06:40 · 927 阅读 · 0 评论 -
JVM(二)Java8内存划分
一、永久代在说java8内存模型之前先说一下永久代的概念。在Java虚拟机(JVM)内部,class文件中包括类的版本、字段、方法、接口等描述信息,还有运行时常量池,用于存放编译器生成的各种字面量和符号引用。 在过去类大多是”static”的,很少被卸载或收集,因此被称为“永久的(Permanent)”。同时,由于类class是JVM实现的一部分,并不是由应用创建的,所以又被认为是“非堆原创 2017-12-09 18:17:09 · 19934 阅读 · 0 评论 -
JVM(一)Java7内存划分
一、内存模型Java内存模型,往往是指Java程序在运行时内存的模型,而Java代码是运行在Java虚拟机之上的,由Java虚拟机通过解释执行(解释器)或编译执行(即时编译器)来完成,故Java内存模型,也就是指Java虚拟机的运行时内存模型。作为Java开发人员来说,并不需要像C/C++开发人员,需要时刻注意内存的释放,而是全权交给虚拟机去管理,那么有就必要了解虚拟机的运行时内存是如何构原创 2017-12-09 14:45:12 · 847 阅读 · 0 评论 -
JVM(九)JVM优化思路分析
1.将新对象预留在年轻代原因:由于 Full GC 的成本远远高于 Minor GC,因此某些情况下需要尽可能将对象分配在年轻代。因此,在 JVM 参数调优时可以为应用程序分配一个合理的年轻代空间,以最大限度避免新对象直接进入年老代的情况发生。总结:合理设置一个年轻代的空间大小 -Xmn 调整这个参数,最好设置成堆内存的3/8,例如最大-Xmx5G,那么 -Xmn应该设置成3/8*2大约原创 2017-12-14 15:53:15 · 455 阅读 · 0 评论