
Jvm内存结构及性能调优监控
jvm
NeilNiu
日拱一卒无有尽,功不唐捐终入海!
展开
-
ClassLoader的原理和应用
class装载验证流程 加载, 链接 验证,目的,保证class流的格式是正确的 ,文件格式的验证、元数据验证、字节码验证、符号引用验证 准备 分配内存,并为类设置初始值(方法区中) public static int v =1 ; 解析 符号引用替换为直接引用 ,直接引用指的是 指针或者地址偏移量,引用对象一定在内存 初始化原创 2017-11-07 20:45:21 · 400 阅读 · 0 评论 -
性能分析及定位ppt
最近在部门内部分享了一次性能分析及定位,分享出来,大家多多指点原创 2019-04-09 09:00:59 · 678 阅读 · 0 评论 -
java虚拟机-对象创建的过程
在java程序运行过程中无时无刻都有对象被创建出来,在语言层面上,创建对象(例如反序列化),通常仅仅是一个new关键字而已,而在虚拟机中,对象创建是分为以下几步 1、虚拟机遇到一条new指令时,首先去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程。 2、在类加载检查通过后,接下来虚拟机将...原创 2019-02-25 13:00:15 · 194 阅读 · 0 评论 -
五、JDK命令行工具jps、jstat、jmap、jstack、jhat、jinfo
一、jps,查看虚拟机进程的命令 参数说明 -q:只输出进程 ID -m:输出传入 main 方法的参数 -l:输出完全的包名,应用主类名,jar的完全路径名 -v:输出jvm参数 二、jstat,查看虚拟机统计信息监视命令 jstat -gcutil 进程id 多少毫秒查询一次 共查询多少次 ,查看垃圾收集的状况,例如下图,进程号10066 ,1000毫秒查询一次...原创 2019-01-03 09:43:32 · 784 阅读 · 0 评论 -
四、理解GC日志、内存分配与回收策略
33.125:[GC [DefNew:3324K->152K(3712K),0.0025925secs]3324K->152K(11904K),0.0031680 secs] 100.667:[FullGC [Tenured:0K->210K(10240K),0.0149142secs]4603K->210K(19456K),[Perm:2999K->2999K(21248K)],0.0150...原创 2018-12-25 13:12:46 · 328 阅读 · 0 评论 -
三、垃圾收集器类型
收集算法是内存回收的方法论,那么垃圾回收器是内存回收的具体实现。本次讨论的收集器基于JDK1.7之后的HotSpot虚拟机。 在谈垃圾收集器的上下文语境中,它们可以解释如下。 并行(Parallel):指多条垃圾收集线程并行工作,但此时用户线程仍然处于等待状态。 并发(Concurrent):指用户线程和垃圾收集线程同时执行(但不一定是并行的,可能会交替执行),用户程序在继续运行,而垃圾...原创 2018-12-06 09:11:45 · 366 阅读 · 4 评论 -
二、垃圾回收算法与思想
主要的垃圾回收算法 一、引用计数器 引用计数器实现很简单,对于一个对象A,只要有任何一个对象引用了A,则A的引用计数器就加1。当引用失效时,引用计数器就减1。只要对象A的引用计数器的值为0。则对象A就不可能再被使用了。只要为每个对象配备一个整型的计数器即可。但是计数器有个一个严重的问题,即无法处理循环引用的情况。因此在java的垃圾回收器中,没有使用这个算法。 二、标记-清除算法 标记-清...原创 2018-11-27 13:15:34 · 212 阅读 · 2 评论 -
一、java虚拟机内存模型
一、java虚拟机内存模型是java程序运行的基础,为了能使java应用程序正常运行,JVM虚拟机将其内存分为程序计数器、虚拟机栈、本地方法栈、java堆和方法区。 程序计数器用于存放下一条运行的指令; 虚拟机栈和本地方法栈用于存放函数调用堆栈信息; java堆用于存放java程序运行时所需的对象; 方法区用于存放程序的类元数据信息。 1、程序计数器,是一块很小的内存空间。由于jav...原创 2018-11-20 09:09:54 · 454 阅读 · 2 评论 -
初始jvm
java语言规范 语法 变量 类型 文法 jvm规范 class 文件类型 运行时数据 帧栈 虚拟机的启动 虚拟机的指令集原创 2017-10-24 22:17:54 · 209 阅读 · 0 评论 -
性能监控工具
1、uptime 运行时间,终端的链接数 load average : 0.8 0.93 0.50 代表一分钟 五分钟 十五分钟 内的系统平均负载,是运行队列中的平均进程数 swap 虚拟交换内存 vmstat 1 4 1s一次 采样4次 可以查看内存 swap io等情况 ,cpu 占用率很高,上下文切换频繁,说明系统有线程正在频繁切换cs 指标看出 pidsta原创 2017-11-08 21:24:57 · 215 阅读 · 0 评论 -
性能测试之类加载(五)
一、类的加载 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。 二、类的生命周期 类的加载、连接和初始化过程都是在程序运行期间完成的。 这个时候类加载的全过程,包括加载、验证、准备、解析和初始化、使用和卸载7个结算,其中验证、准备、解析3个部分统称为连接。 “加载”是“类加载”过...原创 2019-12-31 02:20:09 · 208 阅读 · 0 评论