JVM
akaks0
这个作者很懒,什么都没留下…
展开
-
JAVA GC简介
什么是“GC” 垃圾回收机制。为什么要用“GC” 众所周知,JAVA 这语言,与C语言不同,Java内存(堆内存)的分配与回收由JVM垃圾收集器自动完成,比如 C语言自己定义的变量,不用时需要 自己回收这个变量 。JAVA 这就是自动完成了,自动检测,无用的垃圾,回收,从而释放内存。一个人工,一个自动化。先看一下JVM内存结构栈:存放局部变量堆:存放所有new出来的东西方法区:被虚拟机...原创 2018-03-26 23:04:16 · 373 阅读 · 0 评论 -
JVM 查看当前Java进程的启动参数
为了分析和定位一个Java线上系统问题,我们需要查看JVM启动时的一些参数设置,例如:垃圾回收算法、堆大小等等。这些参数可能在启动脚本中明确指明,也可能采用默认值。在系统运行过程中其他人也许动态调整了系统参数。 jmap -heap [进程号]JVM version is 25.201-b09using thread-local object allocation.Paral...原创 2019-02-16 10:15:42 · 2971 阅读 · 0 评论 -
JVM知识点汇总
一:虚拟机内存图解JAVA程序运行与虚拟机之上,运行时需要内存空间。虚拟机执行JAVA程序的过程中会把它管理的内存划分为不同的数据区域方便管理。虚拟机管理内存数据区域划分如下图: 数据区域分类:方法区: (Method Area)虚拟机栈 : (VM Stack)本地方法栈 : (Native Method Stack)堆: (Heap)程序计数器: (Pr...转载 2018-08-06 11:41:27 · 1119 阅读 · 0 评论 -
jvm默认垃圾收集器
jdk1.7 默认垃圾收集器Parallel Scavenge(新生代)+Parallel Old(老年代)jdk1.8 默认垃圾收集器Parallel Scavenge(新生代)+Parallel Old(老年代)jdk1.9 默认垃圾收集器G1 -XX:+PrintCommandLineFlagsjvm参数可查看默认设置收集器类型-XX:+PrintGCDetails亦可通...转载 2018-08-06 11:31:58 · 384 阅读 · 0 评论 -
JVM 加载class流程
JVM 中类的装载是由类加载器(ClassLoader)和它的子类来实现的,Java 中的类加载器是一个重要的Java 运行时系统组件,它负责在运行时查找和装入类文件中的类。 由于Java 的跨平台性,经过编译的Java 源程序并不是一个可执行程序,而是一个或多个类文件。当Java 程序需要使用某个类时,JVM 会确保这个类已经被加载、连接(验证、准备和解析)和初始化...原创 2018-08-05 11:02:19 · 2762 阅读 · 0 评论 -
JAVA 方法区是在堆里面吗
三种情况:1、 java7之前,方法区位于永久代(PermGen),永久代和堆相互隔离,永久代的大小在启动JVM时可以设置一个固定值,不可变;2、 java7中,static变量从永久代移到堆中;3、 java8中,取消永久代,方法存放于元空间(Metaspace),元空间仍然与堆不相连,但与堆共享物理内存,逻辑上可认为在堆中...转载 2018-07-04 18:51:52 · 12331 阅读 · 8 评论 -
GC日志参数配置
JVM的GC日志的主要参数包含:-XX:+PrintGC 输出GC日志-XX:+PrintGCDetails 输出GC的详细日志-XX:+PrintGCTimeStamps 输出GC的时间戳(以基准时间的形式)-XX:+PrintGCDateStamps 输出GC的时间戳(以日期的形式)-XX:+PrintHeapAtGC 在进行GC的前后打印出堆的信息-Xloggc:../logs/gc.log...原创 2018-07-03 15:55:06 · 3285 阅读 · 1 评论 -
堆内存溢出时,保存内存快照:-XX:+HeapDumpOnOutOfMemoryError
-XX:+HeapDumpOnOutOfMemoryError该配置会把快照保存在用户目录或者tomcat目录下,也可以通过 -XX:HeapDumpPath=/tmp/heapdump.hprof 来显示指定路径此外,OnOutOfMemoryError参数允许用户指定当出现oom时,指定某个脚本来完成一些动作,比如邮件知会。。。-XX:+HeapDumpOnOutOfMemoryError -...原创 2018-07-03 09:26:50 · 14213 阅读 · 0 评论 -
jstat命令详解
Jstat是JDK自带的一个轻量级小工具。全称“Java Virtual Machine statistics monitoring tool”,它位于java的bin目录下,主要利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heap size和垃圾回收状况的监控。可见,Jstat是轻量级的、专门针对JVM的工具,非常适用。jstat工具特别强大,有众多的可选项...转载 2018-04-24 12:33:34 · 230 阅读 · 0 评论 -
MAT分析器中的shallow and retained heap详解
在MAT分析中两个特别重要的参数shallow heap 和retained heap是帮助我们分析内存的重要依据。一个对象的shallow heap的大小指的是该对象在没有引用其他对象的情况下本身占用的内存大小。一个普通对象的shallow heap 的大小(不包括数组类型)依赖于它含的方法,元素的大小。而一个数组类型的shallow heap的大小则依赖于数组的长度和数组里面...转载 2019-02-16 16:06:22 · 1068 阅读 · 0 评论