专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 JVM工具原理

JVM工具原理

更新时间:2022-02-14 10:33:32 来源:动力节点 浏览800次

JVM 工具

BEA WebLogic JRockit 8.1 Beta 使用本章中描述的工具来促进分析和调试 JVM 实现。本节包括有关以下主题的信息:

JVMPI

JVMDI

JVMPI

警告: 此接口是 Java 2 SDK 中的实验性功能,还不是标准的分析接口。

JVMPI 的工作原理

JVM 探查器接口 (JVMPI) 是 Java 虚拟机和进程内探查器代理之间的双向函数调用接口。一方面,虚拟机向分析器代理通知各种​​事件,例如,对应于堆分配、线程启动等。另一方面,分析器代理通过JVMPI发出控制和请求更多信息。例如,分析器代理可以根据分析器前端的需要打开/关闭特定事件通知。

探查器前端可能会或可能不会与探查器代理在同一进程中运行。它可能驻留在同一台机器上的不同进程中,或者位于通过网络连接的远程机器上。JVMPI 没有指定标准的有线协议。工具供应商可能会设计适合不同分析器前端需求的有线协议。

基于 JVMPI 的 profiling 工具可以获取大量内存分配站点、CPU 使用热点、不必要的对象保留和监视器争用等各种信息,以进行全面的性能分析。

JVMPI 支持部分分析,即用户可以在虚拟机启动时间的某些子集内选择性地分析应用程序,也可以选择仅获取某些类型的分析信息。

在当前版本的 JVMPI 中,每个虚拟机只能支持一个代理。

更改 JVMPI 默认行为

-Xjvmpi[<参数>=<值>, ...]

当 JRockit 在附加调试器的情况下运行时,默认情况下会启用许多可能会产生大量开销的事件。由于 JVMPI 不需要发送所有这些事件,您可以通过设置-Xjvmpi标志来禁用它们。使用表 9-1中列出的参数来修改默认行为:

表 9-1 -Xjvmpi的命令行参数

争论 描述
entryexit=off|on (默认开启)

将此设置为off将禁用 JVMPI 发送的以下方法进入和退出事件:

JVMPI_EVENT_METHOD_ENTRY

JVMPI_EVENT_METHOD_ENTRY2

JVMPI_EVENT_METHOD_EXIT

allocs=off|on(默认开启)

将此设置为off将禁用这些对象分配和空闲事件:

JVMPI_EVENT_OBJECT_ALLOC

JVMPI_EVENT_OBJECT_MOVE

JVMPI_EVENT_OBJECT_FREE

JVMPI_EVENT_ARENA_NEW

JVMPI_EVENT_ARENA_DELETE

监视器=关闭|开启(默认开启)

将此设置为关闭禁用这些监视器争用事件:

JVMPI_EVENT_RAW_MONITOR_CONTENDED_ENTER

JVMPI_EVENT_RAW_MONITOR_CONTENDED_ENTERED

JVMPI_EVENT_RAW_MONITOR_CONTENDED_EXIT

JVMPI_EVENT_MONITOR_CONTENDED_ENTER

JVMPI_EVENT_MONITOR_CONTENDED_ENTERED

JVMPI_EVENT_MONITOR_CONTENDED_EXIT

JVMPI_EVENT_MONITOR_WAIT

JVMPI_EVENT_MONITOR_WAITED

arenadelete=off|on (默认关闭)

将此设置为on将启用JVMPI_EVENT_ARENA_DELETE事件。默认情况下会抑制此事件以与不发送此事件的 Sun 的 VM 兼容。如果分析器希望接收事件,则可以启用该事件。

JVMDI

JVM 调试接口 (JVMDI) 是调试器和其他编程工具使用的低级调试接口。它允许您检查状态并控制在 JRockit 中运行的应用程序的执行。

JVMDI 的工作原理

JVMDI 是一个双向接口。可以通过事件通知 JVMDI 客户端感兴趣的事件。JVMDI 可以通过许多不同的功能来查询和控制应用程序,无论是响应事件还是独立于事件。

JVMDI 客户端与正在调试的应用程序在同一虚拟机中运行,并通过本机接口访问 JVMDI。原生的进程内接口允许最大程度地控制调试工具的干扰。通常,JVMDI 客户端相对紧凑。它们可以由一个单独的进程控制,该进程实现调试器的大部分功能,而不会干扰目标应用程序的正常执行。

JVMDI 是 Java 平台调试器架构中的一层。此体系结构还包含更高级别的进程外调试器接口。对于许多调试器工具,高级接口比 JVMDI 更合适。如果您想了解更多相关知识,不妨来关注一下动力节点的Java虚拟机视频,里面的课程内容更加详细,即使没有基础的也可以听懂,希望对大家的学习能够有所帮助哦。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>