`
lin_yp
  • 浏览: 26679 次
社区版块
存档分类
最新评论

JVM attach & ASM

    博客分类:
  • JVM
阅读更多

ASM3.0指南翻译.pdf 下载

Sun JVM Attach API是Sun JVM中的一套非标准的可以连接到JVM上的API,从JDK6开始引入,除了Solaris平台的Sun JVM支持远程的Attach,在其他平台都只允许Attach到本地的JVM上。

一、Sun JVM Attach API功能上非常简单,仅提供了如下几个功能:

  • 列出当前所有的JVM实例描述(如JDK工具jps吗,列出所有的java进程的pid)
  • Attach到其中一个JVM上,建立通信管道
  • 让目标JVM加载Agent

Java Instrutment

Java Instrutment提供了: 一个是允许在类加载之前,修改类字节(ClassFileTransformer)(JDK5中开始提供,即使随JVM启动的Agent),另外一个是在类加载之后,触发JVM重新进行类加载(JDK6中开始提供,用于JVM启动之后通过Attach去加载Agent)。Visual VM的性能剖析、JConsole支持Attach到进程上进行监控,都是通过这种方式来做的。除了这两个功能外,JDK 6中还提供了动态增加BootstrapClassLoader/SystemClassLoader的搜索路径、对Native方法进行instrutment。

asm提供了一个eclipse plugin,更新地址为:http://andrei.gmxhome.de/eclipse/

它可以对比出修改前后的class的差异,并自动翻译为asm代码

btrace:

是一款就能在不改动当前程序的情况下,运行时的去监控Java程序的执行状况,例如可以做到内存状况的监控、方法调用的监控等等。实现机制是attach api + asm + instrumentation。Java Instrutment一个是允许在类加载之前,修改类字节,从JDK5中开始提供,随JVM启动的Agent,另外一个是在类加载之后,触发JVM重新进行类加载,JDK6中开始提供,用于JVM启动之后通过Attach去加载Agent。

分享到:
评论

相关推荐

    深入理解JVM&G1; GC

    《深入理解JVM & G1 GC》一书深入剖析了Java虚拟机(JVM)的工作原理,特别是针对垃圾收集器(GC)中的G1(Garbage-First)算法进行了详尽的探讨。JVM是Java程序运行的基础,它负责解析、编译、执行Java代码,并管理...

    深入理解JVM&G1GC

    资源名称:深入理解JVM & G1 GC内容简介:G1 GC提出了不确定性Region,每个空闲Region不是为某个固定年代准备的,它是灵活的,需求驱动的,所以G1 GC代表了先进性。《深入理解JVM & G1 GC》主要为学习Java语言的...

    JVM源码分析之Attach机制实现完全解读

    Attach是什么 在讲这个之前,我们先来点大家都知道的东西,当我们感觉线程一直卡在某个地 方,想知道卡在哪里,首先想到的是进行线程dump,而常用的命令是jstack ,我们就可以看到 如下线程栈了 2014­06­18 12...

    深入理解JVM & G1 GC.rar

    G1 GC提出了不确定性Region,每个空闲Region不是为某个固定年代准备的,它是灵活的,需求驱动的,所以G1 GC代表了先进性。本书主要为学习Java语言的学生、初级程序员提供GC的使用参考建议及经验,着重介绍了G1 GC ...

    深入理解JVM & G1 GC

    《深入理解JVM & G1 GC》这篇文章和相关压缩包文件主要聚焦于Java虚拟机(JVM)的内存管理,特别是垃圾收集器(GC)的优化,特别是G1(Garbage-First)垃圾收集器的深度解析。下面将详细阐述JVM、GC的基本概念,...

    JVM&g1gc;带书签,完整版本

    "JVM&g1gc;带书签,完整版本"的学习资料提供了深入了解JVM内存管理和G1垃圾收集器的详细内容。通过对G1的理解和实践,开发者可以更好地优化Java应用的性能,降低垃圾收集对应用运行的影响,实现更高效的内存管理。这...

    cglib-2.2 & asm-all-3.1

    ASM可以直接生成和分析Java虚拟机(JVM)的字节码,这使得开发者可以在运行时动态生成和修改类。ASM的强大之处在于其低级别的API,允许开发者精细控制生成的字节码,但这也意味着使用起来相对复杂。 CGlib-2.2是...

    Java Classloading Mechanism : ClassLoader & ASM & 动态字节码增强

    Java 类加载机制是Java运行时环境中的核心组成部分,它负责将类的字节码加载到JVM(Java虚拟机)中并实现类的实例化。深入理解这一机制有助于开发者优化程序性能、实现自定义加载逻辑以及进行动态字节码增强。在本篇...

    jvm学习笔记(jvm内存模型&垃圾收集算法&类加载机制)

    Java虚拟机(JVM)是Java程序的核心组成部分,它负责执行字节码并管理内存。在JVM的学习中,理解其内存模型、垃圾收集算法以及类加载机制至关重要。 1. **JVM内存模型** - **方法区**:也称为“永久代”,存储...

    Java 基础学习笔记:数据类型,常见运算,final & static,Java 常见类,异常 & 反射

    它采用了“一次编写,到处运行”的原则,即一次编写的程序可以在不同的操作系统上运行,这得益于Java虚拟机(JVM)的存在。JVM是Java的核心组成部分,它可以将Java代码解释成特定平台上的机器码,从而实现跨平台运行...

    ASM4手册中文版.pdf.zip

    了解并熟练掌握ASM4对于深入理解Java字节码和JVM工作原理非常重要,它可以帮助开发者创建高效且灵活的工具和库。然而,由于ASM4涉及到底层字节码操作,学习曲线可能会比较陡峭,需要一定的Java虚拟机和编译原理基础...

    asm 6.0 工具集

    ASM支持JVM规范的所有版本,包括Java 8及更高版本的特性,如lambda表达式和方法引用来实现反射和AOP(面向切面编程)。 **ASM-Util**是ASM的实用工具模块,提供了许多方便开发者使用的辅助工具和类。这些工具通常...

    从入门到精通38万字超详细的Java面试题&八股文&知识点全面汇总

    ​ 1.3 JVM面试题 ​ 1.4 Java并发编程面试题 ​ 1.5Java异常面试题 ​ 1.6IO流面试题 ​ 1.7设计模式面试题 ​ 1.8Tomcat、Servlet面试题 ​ 1.9多线程面试题 ​ 1.10MyBatis面试题 ​ 1.11Spring MVC面试题 ​ ...

    推荐一些JVM原理,JVM调优,JVM内存模型,JAVA并发 电子书1

    标题中提到了JVM原理、JVM调优、JVM内存模型和JAVA并发,这些都是Java虚拟机(JVM)相关的核心概念。JVM是运行Java字节码的虚拟计算机,为Java提供了一个跨平台的环境,确保Java程序可以在不同的操作系统上运行而...

    jdk,jvm源码

    Java虚拟机(JVM)是Java程序运行的核心,它负责解释和执行字节码,为Java应用程序提供了一个跨平台的运行环境。JDK(Java Development Kit)包含了开发和运行Java程序所需的所有工具,包括JVM。当我们谈论"jdk,jvm...

    asm6.0 jar包

    7. **兼容性**:ASM 6.0_ALPHA可能会对不同版本的Java虚拟机(JVM)提供支持,包括Java 6、7、8以及可能的更高版本。开发者需要确认新版本是否兼容他们的目标运行环境。 8. **性能优化**:每个新版本通常会包含性能...

    asm-guide.rar

    总之,《ASM指南》是一本全面介绍ASM库的实用指南,对于想要深入理解Java字节码和JVM,或者希望在项目中利用字节码技术的开发者来说,无疑是一份宝贵的资源。通过学习和实践,你将能够利用ASM库创造出更多创新且高效...

    jvm工具、参数调优&调试技巧(补充+修正版)

    《JVM工具、参数调优&调试技巧》 在Java开发中,理解并掌握JVM(Java虚拟机)的工作原理及优化技术是至关重要的。本文将深入探讨JVM的工具、参数调优以及调试技巧,旨在帮助开发者提升应用性能,减少系统故障。 一...

Global site tag (gtag.js) - Google Analytics