Java虚拟机工具包接口 JVMTI

码农软件 · 软件分类 · 其他开发相关 · 2019-10-28 16:57:39

软件介绍

为了帮助 Java 开发人员诊断和跟踪 Java 线程状态的切换,Sun 公司在 Java 开发工具包(Java2 Software Development Kit, JDK)1.5.0 版本中引进了 Java 虚拟机工具接口(Java Virtual Machine Toolkit Interface,JVMTI),用于替代在先前的 JDK 版本中作为试验功能存在的 Java 虚拟机剖析接口(Java Virtual Machine Profiling Interface,JVMPI)和 Java 虚拟机调试接口(Java Virtual Machine Debugging Interface,JVMDI)。通过 JVMTI 接口可以创建代理程序(Agent)以监视和控制 Java 应用程序,包括剖析、调试、监控、分析线程等等,其架构模型如图 1 所示。

图 1. JVMTI 架构模型
图 1. JVMTI 架构模型

Agent 可以向运行中的虚拟机实例订阅感兴趣的事件,当这些事件发生的时候,会以事件回调函数的方式激活代理程序,同时 JVMTI 提供了众多的功能函数,以查询和控制 Java 应用程序的运行状态。Agent 通过 JVMTI 所提供的接口与虚拟机进行通信,并同步监控虚拟机的运行状态,它与运行中的 Java 应用程序是相对独立的,不会干扰程序的正常运行。Agent 可以用任何支持 C 语言标准的本地语言来编写,并以动态链接库的方式存在;Java 程序启动的时候可以加载这个动态链接库。

基于 JVMTI 接口构建的 Agent 可以方便地实现对 Java 线程状态切换的跟踪,从而使开发人员能够在运行时清楚地了解多线程应用程序中线程的工作情况,方便进行调试和除错。

本文地址:https://www.codercto.com/soft/d/17760.html

数据密集型应用系统设计

数据密集型应用系统设计

Martin Kleppmann / 赵军平、李三平、吕云松、耿煜 / 中国电力出版社 / 2018-9-1 / 128

全书分为三大部分: 第一部分,主要讨论有关增强数据密集型应用系统所需的若干基本原则。首先开篇第1章即瞄准目标:可靠性、可扩展性与可维护性,如何认识这些问题以及如何达成目标。第2章我们比较了多种不同的数据模型和查询语言,讨论各自的适用场景。接下来第3章主要针对存储引擎,即数据库是如何安排磁盘结构从而提高检索效率。第4章转向数据编码(序列化)方面,包括常见模式的演化历程。 第二部分,我们将......一起来看看 《数据密集型应用系统设计》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

URL 编码/解码
URL 编码/解码

URL 编码/解码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具