+鼬神+
java软件工程师
展开
-
六.常用调优命令、工具
1.jps查看java进程2.jmap-histo 进程号查看应用内部信息:类 对象 大小这些的-heap 进程号当前进程下的应用程序占用的堆情况‐dump:format=b,file=eureka.hprof 14660生成堆内存快照,可用于分析运行时的对象等情况比如:-Xmx5M -Xms5M -XX:+HeapDumpOnOutOfMemoryError ...原创 2022-04-06 22:25:27 · 448 阅读 · 0 评论 -
五.G1垃圾收集器
1.分代垃圾收集理论物理上区分为新生代和老年代对于G1而言,并没有物理上的分代理论理论上的有新生代和老年代之分2.G1收集器1.8默认为parallel收集器,到了1.9默认为G1,但是在1.8也是支持G1的但是不是默认。G1收集器兼顾了停顿和吞吐量,弱化的分代理论。G1的收集理论和其他的parallel、CMS这些类似,比如动态年龄判断,交换区,大小这些。事实上G1做了很多的优化,基本不需要用户去调节参数。...原创 2022-04-06 22:18:13 · 360 阅读 · 0 评论 -
三.jvm创建对象即其内存分配的深度解析
对象创建过程(new 一个对象过程)1.类加载检查,前面说的class加载的classloader会有个findLoadedClass检查class的加载情况,如果未加载会继续走双亲这些加载机制加载 链接 校验 准备 解析 初始化2.内存分配类加载后其实其占用内存大小就被确定,jvm有两种内存分配方式分配方式:1.指针碰撞原理就是在内存中有一个指针来标记已分配的内存地址,已分配的和未分配的空间被指针分割,那么当有对象需要分配内存的时候,指针就往空闲空间方向挪动一个对象大小位置用来原创 2022-04-02 13:13:32 · 240 阅读 · 0 评论 -
四.垃圾收集算法与垃圾收集器ParNew&CMS
吞吐量:与cpu的使用率相关,也就是并发线程多,那么处理速度就快,也许它停顿时间长,但是它处理的事情多。用户体验:简单的说就是等待时间,jvm中的体现就是STW的时间,也许它处理的事情少,但是它停顿时间短。垃圾收集算法:理论基础:分代收集理论前面说过的,就是年轻代和老年代还有8之前的永久代(元空间,方法区)收集算法:...原创 2022-04-05 20:37:11 · 586 阅读 · 0 评论 -
二.jvm内存模型和深度优化
1.跨平台主要是JVM(虚拟机)的存在它可以适应不同的平台,java运行在vm之上,所以java就成了跨平台。ps:javap -c ***.class c查看java对应的反汇编代码(jvm代码执行过程)2.内存模型三块类容类加载子系统 c++ 主要是加载class字节码执行引擎 c++ 执行代码运行时数据区 运行时内存的划分 重点理解栈:线程独享,先进后出,主要存放局部变量、操作数栈、动态链接、方法出口。特点:1.线程执行一个方法则就在栈中创建一个栈帧,是每一原创 2022-03-28 21:17:56 · 463 阅读 · 0 评论 -
一.jvm专题-类的加载过程
加载->链接->校验->准备->解析->初始化准备:静态变量分配默认数据 分配内存解析:符号引用转直接引用(将代码内容转换成内存地址)初始化:为变量真正的赋值 执行静态代码块new 对象():执行构造方法如果仅仅是定义:既不会加载类也不会执行类中的方法Bootstrap:启动类加载器(引导类加载器),JVM自带,C++实现,程序启动即被创建,加载lib下的核心jar,注意Launcher.class,它是由引导类加载的,但是它又能创建EXT和AP原创 2022-03-24 22:12:26 · 447 阅读 · 0 评论