JVM
文章平均质量分 65
MonkeyKing.sun
未来已来,记录现在,验证未来
展开
-
top命令的详解
top命令的详解原创 2022-06-08 15:39:05 · 167 阅读 · 0 评论 -
排查线上CPU过高的问题,阿里云提供的命令java -jar arthas-boot.jar
线上阿里云的服务器出现了CPU过高,如下图所示:各个服务的接口服务响应时间超过了4秒,整个服务的体验非常的差。1、top命令显示PID为22800的java进程占用的cpu资源过高。2、使用 ps -ef | grep 22800 命令,查看到这是一个tomcat服务,找到具体的目录,我的服务的路径为/home/tomcat/tomcat6/9601_timerbackend。3、进入tomcat目录底下,cd /home/tomcat/tomcat6/9601_timerbackend,执行命令原创 2021-04-20 12:59:34 · 740 阅读 · 0 评论 -
jprofiler远程监控JVM( spring boot项目)
服务器的服务出现莫名其妙的假死问题,没有出现报错或者异常信息。只能安装jprofiler进行远程的监控和排查问题。第一步、下载windows端jprofiler11.0.2 版本下载地址:https://www.ej-technologies.com/download/jprofiler/version_110第二步、下载liunx端的jprofiler11.0.2版本或者直接在liunx服务器上直接使用命令wget https://download-gcdn.ej-technologie原创 2020-08-24 12:27:38 · 7092 阅读 · 0 评论 -
JVM调优的liunx命令
在平时的运维工作中,我们经常会碰到下面这些问题:1、OutOfMemoryError,内存不足 2、内存泄露 3、线程死锁 4、锁争用(Lock Contention) 5、Java进程消耗CPU过高导致服务器CPU或者内存飙高影响线上业务,对于解决以上问题,我们常用的JVM性能调优监控工具有:jps、jstat、jstack、jmap、jhat、hprof、jinfo如果想要查看Java进转载 2017-12-15 13:08:06 · 1087 阅读 · 0 评论 -
《Java虚拟机原理图解》3. JVM类加载器机制与类加载过程
前言 读完本文,你将了解到: 一、为什么说Jabalpur语言是跨平台的 二、Java虚拟机启动、加载类过程分析 三、类加载器有哪些?其组织结构是怎样的? 四、双亲加载模型的逻辑和底层代码实现是怎样的? 五、类加载器与Class 实例的关系 六、线程上下文加载器一、为什么说Java语言是跨平台的? Java语言之所以说它是跨平台的、可以在当前绝大部分的操作系统平台下运行,是因为Ja转载 2017-12-14 16:44:22 · 277 阅读 · 0 评论 -
《Java虚拟机原理图解》2.JVM机器指令集
前言 Java虚拟机和真实的计算机一样,运行的都是二进制的机器码;而我们将.java 源代码编译成.class 文件,class文件便是Java虚拟机能够认识的二进制机器码,Java能够识别class文件中的信息和机器指令,进而执行这些机器指令。那么,Java虚拟机是如何运行这些二进制的机器码的呢? 本文将通过一个非常简单的例子,带你感受一下Java虚拟机运行机器码的过程和其工作的转载 2017-12-14 15:09:05 · 482 阅读 · 0 评论 -
《Java虚拟机原理图解》1.5、 class文件中的方法表集合--method方法在class文件中是怎样组织的
1.概述 方法表集合是指由若干个方法表(method_info)组成的集合。对于在类中定义的若干个,经过JVM编译成class文件后,会将相应的method方法信息组织到一个叫做方法表集合的结构中,字段表集合是一个类数组结构,如下图所示: method方法的描述-方法表集合在class文件中的位置 method方法的描述-方法表集合紧跟在字段表集合的后面,如下图所示: 一个类中的method方法转载 2017-12-14 13:23:08 · 293 阅读 · 0 评论 -
《Java虚拟机原理图解》1.4 class文件中的字段表集合--field字段在class文件中是怎样组织的
1.概述 字段表集合是指由若干个字段表(field_info)组成的集合。对于在类中定义的若干个字段,经过JVM编译成class文件后,会将相应的字段信息组织到一个叫做字段表集合的结构中,字段表集合是一个类数组结构,如下图所示: 注意:这里所讲的字段是指在类中定义的静态或者非静态的变量,而不是在类中的方法内定义的变量。请注意区别。 比如,如果某个类中定义了5个字段,那么,JVM在编译此类的转载 2017-12-13 17:50:27 · 238 阅读 · 0 评论 -
《Java虚拟机原理图解》1.3、class文件中的访问标志、类索引、父类索引、接口索引集合
讲完了class文件中的常量池,我们就相当于克服了class文件中最麻烦的模块了。现在,我们来看一下class文件中紧接着常量池后面的几个东西:访问标志、类索引、父类索引、接口索引集合访问标志、类索引、父类索引、接口索引集合 在class文件中的位置 访问标志(access_flags)能够表示什么? 访问标志(access_flags)紧接着常量池后,占有两个字节,总共16位,如下图所示:当转载 2017-12-13 16:57:33 · 413 阅读 · 0 评论 -
《Java虚拟机原理图解》 1.2 Class文件中的常量池详解
NO1.常量池在class文件的什么位置? 在class文件中的魔数,副版本号、主版本之后,紧接着就是常量池的数据区域,红线包括的位置。NO2.常量池的里面是怎么组织的? 常量池的组织很简单,前端的两个字节占有的位置叫做常量池计数器(constant_pool_count),它记录着常量池的组成元素 常量池项(cp_info) 的个数。紧接着会排列着constant_pool_count-转载 2017-12-13 15:01:35 · 455 阅读 · 1 评论 -
《Java虚拟机原理图解》 1.1、class文件基本组织结构
找一个class文件,用文本工具打开如图所示按照上面的二进制编码,了解他的组成结构 1、魔数 所有的java编译器编译而成的class文件的前四个字节都是OXCAFEBEBE 作用:在JVM在尝试加载某个文件到内存中来的时候,会首先判断此class文件有没有jvm认为可以接受的‘签名’,即jvm会首先读取文件的前四个字节,如果是OXCAFEBEBE,则JVM会认为可以将此文件当作class文件转载 2017-12-13 11:39:29 · 336 阅读 · 0 评论