Java性能监控之Java程序执行解析
大家好,最近接触javassist技术,研究过程中对Java程序执行过程进行了一系列探索,弄清楚了几个盲区(仅针对个人而言),现将经验与大家分享。
1、编码->.java 通常指写代码的过程,最终输出一个.java源码文件
2、编译->.class .java源码经jdk编译后,输出.class二进制文件
3、启动运行->launcher->main 运行java 命令后,java程序由launcher作为入口,并调用main函数
4、创建实例->classloader 真正执行我们的程序并需要创建实例时,classloader开始发挥作用,其中有几个函数是native方法实现(findclass等)
5、获取.class->byte[] 由native方法读取.class文件并将二进制流读取出来
6、存入栈->perm 在SecurityClassLoad中实现了二进制流存储perm区的操作
7、对象创建->内存 由native实现完成内存申请、对象创建
8、执行->输出结果
粗略总结,一个java程序执行大概需要这几步。
Java性能监控之Java程序执行解析的更多相关文章
- 关于 Java 性能监控您不知道的 5 件事,第 1 部分
责怪糟糕的代码(或不良代码对象)并不能帮助您发现瓶颈,提高 Java? 应用程序速度,猜测也不能帮您解决.Ted Neward 引导您关注 Java 性能监控工具,从5 个技巧开始,使用Java 5 ...
- Linux下Java性能监控
Linux下Java性能监控 一.JVM堆内存使用监控 获取thread dump的3种方法: 1)使用$JAVA_HOME/bin/jcosole中的MBean,到MBean>com.sun. ...
- Java性能监控
Java性能监控 上次介绍了如何使用jvisualvm监控java,今天做进一步讲解!Java性能监控主要关注CPU.内存和线程. 在线程页中,点击线程Dump,可以生成threaddump日志,通过 ...
- JAVA性能监控与调优参考文档链接
JAVA性能监控与调优参考文档链接 jdk8工具集 https://docs.oracle.com/javase/8/docs/technotes/tools/unix/index.htmlTroub ...
- java中子类继承父类程序执行顺序
java中子类继承父类程序执行顺序 FatherTest.java public class FatherTest { private String name; public FatherTest() ...
- 性能监控之Java程序执行解析
大家好,最近接触javassist技术,研究过程中对Java程序执行过程进行了一系列探索,弄清楚了几个盲区(仅针对个人而言),现将经验与大家分享. 1.编码->.java 通常指写代码的过程,最 ...
- Java性能监控之Instrumentation
注:网上摘取的资料整理出来,供大家学习理解,希望有所帮助. 1.1. Instrumentation 简介 利用 Java 代码,即 java.lang.instrument 做动态 Ins ...
- AIX性能监控topas命令的详细解析
执行topas命令后如图所示: #topas 区域1:反映CPU使用率和工作状况 Kernel:操作系统的内核占用的CPU时间比率. 操作系统作为基础软件,为应用程序支持和服务的同时,本身的运行也需 ...
- java虚拟机(八)--java性能监控与故障处理工具
问题定位: 除了个人经验,知识,工具也是很重要的,通过数据进行问题分析,包括:运行日志.异常堆栈.GC日志.线程快照(threaddump/javacore文件 ).堆转储快照(heapdump/hp ...
随机推荐
- 11、SpringBoot------定时任务
开发工具:STS 代码下载链接:https://github.com/theIndoorTrain/Springboot/tree/52ef6c0c805913db1e66ed18671c322e ...
- python与consul 实现gRPC服务注册-发现
背景 通过对gRPC的介绍我们知道,当正常启动服务后,我们只需要知道ip,port就可以进行gRPC的连接.可以想到,这种方式并不适合用于线上环境,因为这样直连的话就失去了扩展性,当需要多机部署的时候 ...
- Linux 性能检查常用命令
####消耗CPU最多的进程 [root@Yong ~]# ;|head ##拼接进程号 [root@Yong ~]# |awk '{print $1}' |awk BEGIN{RS=EOF}'{gs ...
- EAIntroView–高度可定制的iOS应用欢迎页通用解决方案
简介 高度可定制的应用欢迎页通用解决方案,可高度定制,不要仅限于现有的demo. 项目主页: EAIntroView 最新示例: 点击下载 入门 安装 安装后,引入” EAIntroView.h”并设 ...
- 重新认识下数组的concat方法
最近在学习react,看官方文档的时候,有一个例子中的一句话让我困惑.就是讲todoList的例子 concat不是连接数组的吗?看了一下concat的介绍 数组虽然是对象类型,但是对象毕竟不是数组啊 ...
- Json数据常用操作
JSON字符串: var str1 = '{ "name": "cs", "sex": "man" }'; JSON对象 ...
- LeetCode105. Construct Binary Tree from Preorder and Inorder Traversal
题目 根据一棵树的前序遍历与中序遍历构造二叉树. 注意: 你可以假设树中没有重复的元素. 例如,给出 前序遍历 preorder = [3,9,20,15,7] 中序遍历 inorder = [9,3 ...
- hdu_1452_Happy 2004 (乘法逆元
Consider a positive integer X,and let S be the sum of all positive integer divisors of 2004^X. Your ...
- Percona-Tookit工具包之pt-pmp
Preface Sometimes we need to know the details of a program(porcess) when it is running even ...
- springboot+Druid+mybatis整合
一.添加Druid.MySQL连接池.mybatis依赖 <!--整合Druid--> <dependency> <groupId>com.alibaba</ ...