jvm
dengjili
一个人在党性、真诚、智慧三样东西中,只可能拥有两样
update by 2022/2/9
同时拥有党性、真诚、智慧,已经不是普通人
展开
-
class类文件的结构(一)
Class文件格式类型名称数量u4magic1u2minor_version1u2major_version1u2constant_pool_count1cp_infoconstant_poolconstant_pool_countu2access_flags1u2this_class1u2super_...原创 2019-11-27 22:39:00 · 167 阅读 · 0 评论 -
VisualVM使用
VisualVM 是一款免费的,集成了多个 JDK 命令行工具的可视化工具,它能为您提供强大的分析能力,对 Java 应用程序做性能分析和调优属于jdk自带的软件,在目录%HOME%\bin\jvisualvm.exe安装插件我这里设置的:https://visualvm.github.io/archive/uc/8u40/updates.xml.gz显示可以安装的插件这是我已经安装...原创 2019-11-24 13:13:50 · 354 阅读 · 0 评论 -
JConsole使用
JConsole( Java- Monitoring and Management Console)是一种基于JMX的可视化监视管理工具。下面列举三个例子测试JConsole功能使用查看eclipse运行情况连接上eclipse程序查看Overviw掌握全局情况,包括内存、线程、class、cpu情况内存详细查询,这里我们查看Eden区使用情况,和Eden总大小查看Vm summ...原创 2019-11-24 12:22:11 · 817 阅读 · 1 评论 -
Sun JDK监控和故障处理工具
Sun JDK监控和故障处理工具名称主要作用jpsJVM Process Status Tool,.显示指定系统内所有的 HotSpot 虚拟机进程jstatJVM Statistics Monitoring Tool,用于收集 HotSpot虚拟机各方面的运行数据jps工具主要选项使用: jps [options]选项[options]作用...原创 2019-11-23 12:27:40 · 301 阅读 · 0 评论 -
GC各参数学习记录
GC各参数学习记录JVM GC格式日志的主要参数-XX:+PrintGC 输出简要GC日志 -XX:+PrintGCDetails 输出详细GC日志 -Xloggc:gc.log 输出GC日志到文件-verbose:gc-XX:+PrintHeapAtGC 在进行GC的前后打印出堆的信息-XX:+PrintReferenceGC 打印年轻代各个引用的数量以及时长-XX:+Pri...原创 2019-11-21 23:46:11 · 407 阅读 · 0 评论 -
GC日志的学习
基本参数了解堆大小设置-Xms20m -Xmx20mNew Generation(新生代)内存大小设置Xmn256m新生代和老年代内存的比值来设置新生代大小-XX:NewRatio=3设置新生代(包括Eden和两个Survivor区)与老年代的比值(除去持久代)。设置为3,则新生代与老年代所占比值为1:3,新生代占整个堆栈的1/4Survivor内存大小设置-XX:Survivo...原创 2019-11-20 00:13:09 · 161 阅读 · 0 评论 -
几款垃圾收集器了解
Serial收集器单线程收集器,进行垃圾收集时,必须暂停其他所有的工作线程新生代采取复制算法Serial收集器对于运行在 Client模式下的虚拟机来说是一个很好的选择。ParNew收集器ParNew收集器其实就是 Serial收集器的多线程版本新生代采取复制算法运行在 Server模式下的虚拟机中首选的新生代收集器,唯一支持CMS的多线程新生代收集器Parallel Sc...原创 2019-11-18 23:42:59 · 124 阅读 · 0 评论 -
java finalize了解(垃圾收集器和内存分配策略 三)
对象的生存和死亡-finalize即使在可达性分析算法中不可达对象,也并非是一定回收,这个时候他们暂时处于待回收状态,要真正宣告一个对象死亡,至少要经历过两次标记过程;如果对象在进行可达性分析后发现没有与GC Roots相连接的引用链,那它将会被第一次标记并进行一次筛选,筛选的条件是此对象是否有必要执行finalize方法。当对象没有覆盖finalize方法,或者finalze方法已经被虚拟机调...原创 2019-09-25 23:53:23 · 117 阅读 · 0 评论 -
java对象的存活分析(垃圾收集器和内存分配策略 一)
前沿垃圾收集器主要面对的问题哪些内存需要回收什么时候回收如何回收为什么要掌握垃圾收集器?当我们需要对内存溢出、内存泄漏问题排除。或者当垃圾收集器成为系统达到高并发量的瓶颈时,我们需要对垃圾收集器进行调优。当我们需要对内存溢出、内存泄漏问题排除。或者当垃圾收集器成为系统达到高并发量的瓶颈时,我们需要对垃圾收集器进行调优。垃圾收集器关注的是哪一块内存空间?程序计数器、虚拟机栈...原创 2019-09-10 23:04:05 · 148 阅读 · 0 评论 -
OutOfMemoryError异常实践(java内存区域 三)
java堆溢出原创 2019-09-07 12:34:54 · 143 阅读 · 0 评论 -
HotSpot虚拟机对象了解 (java内存区域 二)
对象的创建对象的内存布局对象的访问定位原创 2019-09-02 22:10:41 · 169 阅读 · 0 评论 -
运行时数据区域 (java内存区域 一)
运行时数据区域java虚拟机根据用途的不同,将内存划分成以下几个区域。程序计数器指向当前线程执行的字节码地址,程序的控制,如:循环、跳转等,线程的恢复都依赖于程序计数器来完成。由于cpu选择线程是轮换执行的,所以每个线程都需要记住当前程序执行指令的地址,以便于轮换到自己的时候,切换到上一次执行的位置,所有每个线程的程序计数器独立的,也就是线程独立的内存,也是上图中说明的隔离的数据区。...原创 2019-09-01 00:55:29 · 135 阅读 · 0 评论 -
Eclispe Debug JDK8源码配置
有效链接:https://blog.csdn.net/KSN_C/article/details/81190392原创 2019-08-31 00:48:26 · 207 阅读 · 0 评论 -
eclipse memory analyzer使用
安装在eclipse中点击 help–>markerplace,搜索memory即可测试代码运行HeadOOm需要设置jvm参数:-Xms20m -Xmx20m -XX:+HeapDumpOnOutOfMemoryErrorpublic class HeadOOm { public static void main(String[] args) { TestList2 tes...原创 2019-08-23 00:04:36 · 464 阅读 · 0 评论 -
javap字符串拼接性能问题分析 (实战二)
目录javap指令集字符串常量相加StringBuilder字符串常量相加字符串连接的性能例子javap指令集参考入门教程一:https://blog.csdn.net/dengjili/article/details/99705898字符串常量相加源码public class JavapDemo { public void test(){ String a = "123"; ...原创 2019-08-19 05:58:35 · 275 阅读 · 0 评论 -
javap入门 (实战一)
javap指令集使用命令:javap -c priv.dengjili.javap.JavapDemo最简单的方法源码public class JavapDemo { public void main() { }}反汇编后Compiled from "JavapDemo.java"public class priv.dengjili.javap.JavapDemo { ...原创 2019-08-18 16:21:44 · 299 阅读 · 0 评论