JVM学习
文章平均质量分 77
supericeice
程序媛
展开
-
JVM 垃圾回收器 ZGC垃圾回收算法的实现
JVM 垃圾回收器 ZGC垃圾回收算法的实现学习ZGC,主要通过学习ZGC设计与实现书籍,并以博客的形式记录学习内容ZGC是一款并发的垃圾回收器,支持并发标记、并发转移和并发重定位。并发垃圾回收算法并发垃圾回收算法概述并发垃圾回收算法实际上是以复制算法为基础,增加了并发处理。复制算法分为3个算法:标记:从根集合出发,标记活跃对象;此时内存中存在活跃对象和已死亡对象。转移:把活跃对象转移(复制)到新的内存上,原来的内存空间可以回收。重定位:因为对象的内存地址发生了变化,所以所有指向对象老地原创 2022-01-17 23:56:21 · 684 阅读 · 0 评论 -
Windows Java VisualVM 查看Linux上的java进程
Windows Java VisualVM 查看Linux上的java进程Linux上的java进程启动启动时需要加上下列参数-Djava.rmi.server.hostname=远端ip -Dcom.sun.management.jmxremote.port=自定义端口 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=falseWindows上打开Jvisualvm客原创 2021-11-19 19:45:55 · 1261 阅读 · 0 评论 -
JVM 垃圾回收器 ZGC线程
JVM 垃圾回收器 ZGC线程学习ZGC,主要通过学习ZGC设计与实现书籍,并以博客的形式记录学习内容ZGC主要靠后台线程执行,后台线程包括控制线程和工作线程。控制线程是主要控制垃圾回收的触发、执行;工作线程是真正执行垃圾回收具体的任务,比如对象的标记、转移。JVM线程控制线程ZGC新引入3大基础线程分别为ZDirector、ZDriver、ZStat。ZDirector:控制什么时候启动垃圾回收。ZDriver:控制垃圾回收执行的步骤,ZGC垃圾回收一共分为10步,这10步是串行执行的。原创 2021-10-31 23:33:04 · 336 阅读 · 0 评论 -
JVM 垃圾回收器 ZGC内存管理
JVM 垃圾回收器 ZGC内存管理学习ZGC,主要通过学习ZGC设计与实现书籍,并以博客的形式记录学习内容ZGC 实现了两级内存管理:虚拟内存和物理内存,并且实现了物理内存和虚拟内存的映射关系。这和操作系统中虚拟地址和物理地址设计思路基本一致。多视图映射操作系统支持多个虚拟地址同时映射到一个物理地址上,当我们操作其中一个虚拟地址,所有虚拟地址都能访问到最新的数据。Linux主要通过系统函数mmap完成视图映射,多个视图映射就是多次调用mmap函数,多次调用的返回结果就是不同的虚拟地址。ZGC仅支原创 2021-10-07 23:24:45 · 217 阅读 · 0 评论 -
JVM 垃圾回收器 ZGC
JVM 垃圾回收器 ZGC简介学习ZGC,主要通过学习ZGC设计与实现书籍,并以博客的形式记录学习内容ZGC在JDK11引入,目前被标记为实验性质。ZGC的出现是为了解决G1的不足。G1不足之处G1的目标是在可控的停顿时间内完成垃圾回收,所以进行了分区设计,在回收时采用部分回收(在YGC时会回收所有新生代分区,在混合回收时会回收所有的新生代分区和部分老年代分区),支持也可以达到几十GB或者上百个GB。为了进行部分回收,G1实现RSet管理对象的引用关系。基于以上设计的特点,导致G1存在以下的问题:原创 2021-10-07 00:42:00 · 270 阅读 · 0 评论 -
Linux dump过大 JVM内存分析工具mat
Linux dump过大 JVM内存分析工具mat1. dump启动时添加JVM参数-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=dump文件输出路径2. 下载Linux mat工具linux 安装包下载路径3. 解压Linux mat分析工具unzip MemoryAnalyzer-1.12.0.20210602-linux.gtk.x86_64.zip4. 执行生成./ParseHeapDump.sh dump文件 org.原创 2021-08-31 21:39:39 · 1163 阅读 · 0 评论 -
OpenJDK8 源码编译 运行 调试
OpenJDK8 源码编译 运行 调试感谢小童的对象在学习期间给予极大的帮助和鼓励,笔芯!文章目录OpenJDK8 源码编译 运行 调试准备配置Ubuntu配置OpenJDK7安装 编译OpenJDK8 所需依赖编译OpenJDK8安装Clion运行调试OpenJDK8项目准备ubuntu 16.04OpenJDK7OpenJDK8 源码VMClion编译参考OpenJDK8所下载的README-builds.html。编译OpenJDK8需要提前有8以前的Java环境,所以下载了Op原创 2021-03-03 00:49:09 · 2058 阅读 · 2 评论 -
深入理解JVM 之 逃逸分析
深入理解JVM 之 逃逸分析逃逸分析的理论学习及实验准备逃逸分析的知识:参考 深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)周志明 的 11.4.3 逃逸分析部分逃逸分析的算法:Escape Analysis for Java此篇论文略深奥,暂时作为辅助作用,此篇不详细讲论文的内容逃逸分析的基本概念什么是逃逸分析:当一个对象指针被多个方法或线程引用时称这个指针发生逃逸。而用来分析这个逃逸的方法,则称为逃逸分析。因此逃逸分析是目前Java虚拟机中比较前沿的优化技术,不是直接优化代码原创 2021-02-16 23:39:31 · 467 阅读 · 1 评论