JVM
文章平均质量分 95
旧梦昂志
这个作者很懒,什么都没留下…
展开
-
并发编程-03 聊透乐观锁CAS
在JDK的并发包下,有大量使用乐观锁cas的代码,通过争抢修改cas内存值,来保证多线程竞争的高效率是提升独占锁阻塞效率的极佳姿势,但同时带来的ABA和CPU空转问题也值得大家关注。原创 2022-01-04 22:50:24 · 6897 阅读 · 0 评论 -
JVM-04 调优实战
常见JVM调优工具及实战1、Jdk自带的常见命令1.1 java -heap (pid)1.2 jmap(java memory map) 查看内存问题1.2.1 jmap -histo (pid) >./log.txt1.2.2 jmap -dump:live,format=b,file=jvm.hprof (pid)1.3 jstack 查看虚拟机栈问题1.3.1 jstack 查找死锁1.3.1 jstack 查看CPU飙升问题1.4 jinfo 查看系统属性1.4.1 jinfo -原创 2021-08-25 00:39:42 · 4843 阅读 · 1 评论 -
JVM-03 垃圾收集器
垃圾收集器算法垃圾收集算法是结合堆中不同对象的生命周期,将对象进行分代。生命存活率低的存放在年轻代,而对象生命存活率高的放在老年代。复制算法的效率非常高,将存活对象转移至suvrior区即可。标记整理算法是标记清除进化的过程。标记清除算法非常简单,只需要把存活对象或垃圾标记标记,把存活对象留下,垃圾对象清除即可。但这存在着问题,会使内存空间碎片化,于是有了标记整理算法。标记整理算法。标记整理算法在标记存活和垃圾对象后,不会直接将垃圾清除。而是将存活对象移动到内存一端,将域外的内存全部清理。垃原创 2021-08-22 00:03:04 · 5023 阅读 · 0 评论 -
JVM-02 内存模型及内存分配机制
杠精看JVM内存模型1、JVM对内存模型中各参数的定义1.1 运行时数据区概念1.2 PC寄存器1.3 线程栈1.4 堆1.5 方法区(元空间、永久代)1.6 运行时常量池1.7 本地方发栈1、JVM对内存模型中各参数的定义初学JAVA时,对JVM中的堆、栈、方法区等甚是模糊,甚至很多老师也讲不清楚,一遍遍从概念学起太浪费功夫,今天就从官网上把JVM内存中的数据区挨个拎出来看。1.1 运行时数据区概念2.5. Run-Time Data AreasThe Java Virtual Machine原创 2021-08-20 23:07:46 · 5695 阅读 · 0 评论 -
JVM-01 类加载过程及源码分析
一、类加载过程分析我们通过ide写的java代码,毫无疑问是最终需要加载到JVM来运行的。试想JVM作为跨语言的平台,能同时支持多种编程语言(js、groory、scala…等)的字节码文件运行,那么在字节码文件和JVM之间,必须有一套完备的流程,来将字节码文件转化为JVM内存中的变量信息。1.1 类加载器引导类加载器:负责加载支撑JVM运行的位于JRE的lib目录下的核心类库,比如 rt.jar、charsets.jar等扩展类加载器:负责加载支撑JVM运行的位于JRE的lib目录下的ext扩原创 2021-08-16 00:27:59 · 5651 阅读 · 1 评论