![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
jvm
文章平均质量分 50
langzilige
java搬运工
展开
-
谈谈你对jstat命令使用
jstat(JVM Statistics Monitoring Tool)是用于监视虚拟机各种运行状态信息的命令行工具。它可以显示本地或者远程虚拟机进程中的类加载、内存、垃圾收集、即时编译等运行时数据,在没有GUI图形界面、只提供了纯文本控制台环境的服务器上,它将是运行期定位虚拟机性能问题的常用工具。jstat命令格式为:jstat [ option vmid [interval[slms][count]]]参数interval和count代表查询间隔和次数,如果省略这2个参数,说明只查询一次。假设需原创 2022-05-04 18:08:15 · 818 阅读 · 0 评论 -
【轻量级锁的加锁和解锁过程】
轻量级锁加锁• 线程在执行同步块之前, JVM会先在当前线程的栈桢中创建用于存储锁记录的空间, 并 将对象头中的Mark Word复制到锁记录空间中中, 官方称为Displaced Mark Word;• 然后线程尝试使用 CAS将对象头中的Mark Word替换为指向锁记录的指针。• 如果成功, 当前线程获得锁, 如果失败, 表示其他线程竞争锁, 当前线程便尝试使 用自旋来获取锁。轻量级解锁 会使用原子的CAS操作将Displaced Mark Word替换回到对象头, 如果成 功, 则表示没 有原创 2022-04-23 17:29:11 · 272 阅读 · 0 评论 -
jvm调优神器arthas(阿尔萨斯)安装与调优介绍
1alsace(阿尔萨斯)安装alsace官网链接:官网链接安装方式分为两种1).自动安装步骤1.1快速安装使用arthas-boot(推荐)第1步 curl -O https://alibaba.github.io/arthas/arthas-boot.jar第2步 java -jar arthas-boot.jar注,如果没有java程序,运行第二步会报错,需要启动一个java进程;启动后退出 按Q就退出了1.2使用as.shArthas 支持在 Linux/Unix/Mac原创 2020-06-26 17:19:04 · 2807 阅读 · 1 评论 -
tomcat下的项目jvm内存设置
1.linux 下调整tomcat的内存设置修改bin目录下catalina.sh文件在cygwin=false之上添加以下语句JAVA_OPTS="-Xms512m -Xmx1024m -Xss2048K -XX:PermSize=256m -XX:MaxPermSize=512m"其中-xms为jvm初始化堆的大小,-xmx为jvm堆的最大值2. window 下调整tomcat的内存设置修改bin目录下catalina.bat文件@echo off下追加set JAVA_OPTS=原创 2020-06-19 17:06:39 · 286 阅读 · 0 评论 -
netty介绍
什么是Netty?Netty 是一个利用 Java 的高级网络的能力,隐藏其背后的复杂性而提供一个易于使用的 API 的客户端/服务器框架。 Netty是一个广泛使用的 Java 网络编程框架(Netty 在 2011 年获得了Duke’s ChoiceAward,见https://www.java.net/dukeschoice/2011)。它活跃和成长于用户社区,像大型公司Facebook 和 Instagram 以及流行 开源项目如 Infinispan, HornetQ, Vert.x,转载 2020-05-24 18:25:15 · 286 阅读 · 0 评论 -
jvm调优工具介绍
jvm实战调优原创 2020-05-24 16:46:53 · 1226 阅读 · 0 评论 -
记一次面试题关于对象创建以及内存分配问题
class M{int n =4;}main{M m = new M();}1.对象创建过程对象初始化过程1.1申请内存1.2初始化成员变量 n= 0 //这个时候 m 会指向一个半初始化的对象,因为n已经初始化1.3设置初始值 n=4 //m指向一个正确的m对象2 对象头具体包括什么2.1Mark Word锁的信息Gc标记信息 标记清除算法 GC年龄(4位最大15) 为什么标记清除算法标记年龄最大15 对象头GC标记信息最大4位has原创 2020-05-17 15:58:12 · 314 阅读 · 0 评论 -
jvm的三种算法以及10种垃圾收集器
jvm的三种算法以及10种垃圾收集器jvm怎么知道堆里面的对象是无用数据,有两种方式:1.引用计数法:每个对象有一个引用计数属性,新增一个引用时计数加1,引用释放时计数减1,计数为0时可以回收。此方法简单,无法解决对象相互循环引用的问题。2.跟查找GC Roots(Reachability Analysis):从GC Roots开始向下搜索,搜索所走过的路径称为引用链。当一个对象到GC Roots没有任何引用链相连时,则证明此对象是不可用的,即为不可达对象。jvm的三种基本算法1.1 标记原创 2020-05-10 18:13:17 · 4288 阅读 · 1 评论