点击进入_更多_Java千百问1、JVMTI提供哪些功能了解JVMTI看这里:JVMTI是什么
编写JVMTI程序看这里:如何编写JVMTI agent程序
JVMTI 的功能非常丰富,包含了虚拟机中线程、内存堆/栈、类/方法/变量、事件/定时器处理、代码调试等多种功能,这里我们介绍一些常用的功能。调试功能调试功能是JVMTI的基本功能之一,这主要包括了设置断点、调试等,在JVMTI里面,设置断...
分类:
编程语言 时间:
2016-07-02 12:01:32
阅读次数:
301
点击进入_更多_Java千百问1、如何编写JVMTI agent程序了解JPDA看这里:JPDA是什么
了解JVMTI看这里:JVMTI是什么
我们需要使用C++编写agent程序,JVM在不同时机回调下面的接口函数:JNIEXPORT jint JNICALL Agent_OnLoad(JavaVM *jvm, char *options, void *reserved)JNIEXPORT j...
分类:
编程语言 时间:
2016-07-02 10:34:01
阅读次数:
247
点击进入_更多_Java千百问1、JVMTI是什么JVMTI(JVM Tool Interface)是JPDA体系中的最底层, 由Java虚拟机提供的native编程接口,是JVMPI(Java Virtual Machine Profiler Interface)和 JVMDI(Java Virtual Machine Debug Interface)的更新版本。了解JPDA体系看这里:JPDA是...
分类:
编程语言 时间:
2016-07-02 09:16:20
阅读次数:
442
随着多核 CPU 的日益普及,越来越多的 Java 应用程序使用多线程并行计算来充分发挥整个系统的性能。多线程的使用也给应用程序开发人员带来了巨大的挑战,不正确地使用多线程可能造成线程死锁或资源竞争,导致系统瘫痪。因此,需要一种运行时线程监控工具来帮助开发人员诊断和跟踪 Java 线程状态的切换。J ...
分类:
编程语言 时间:
2016-06-23 08:47:29
阅读次数:
630
堆内存 = 年轻代 + 年老代 + 永久代年轻代 = Eden区 + 两个Survivor区(From和To) JVMTI全称JVM Tool Interfacejavaagent 是在你的main方法前的一个拦截器 (interceptor),也就是在main方法执行之前,执行agent的代码-a
分类:
编程语言 时间:
2016-03-04 13:05:06
阅读次数:
159
概述JVM的GC一般情况下是JVM本身根据一定的条件触发的,不过我们还是可以做一些人为的触发,比如通过jvmti做强制GC,通过System.gc触发,还可以通过jmap来触发等,针对每个场景其实我们都可以写篇文章来做一个介绍,本文重点介绍下System.gc的原理或许大家已经知道如下相关的知识sy...
分类:
其他好文 时间:
2015-11-15 23:01:21
阅读次数:
264
主要写了使用 JVMTI 中需要的几个关键问题,包括 jni functions 的使用,线程安全,调试技巧。...
分类:
其他好文 时间:
2015-03-15 12:25:59
阅读次数:
170
说到底还是要依靠底层操作系统提供的IPC方式。...
分类:
其他好文 时间:
2015-02-10 16:50:29
阅读次数:
169
之前我们已经通过使用JDI的API写出了一个简单的调试器。那么这些API后面又是隐藏了什么样的实现机制?下面就通过源码来分析下。...
分类:
其他好文 时间:
2015-02-05 09:37:04
阅读次数:
323
JPDA(Java Platform Debugger Architecture) 是 Java 平台调试体系结构的缩写,通过 JPDA 提供的 API,开发人员可以方便灵活的搭建 Java 调试应用程序。JPDA 主要由三个部分组成:Java 虚拟机工具接口(JVMTI),Java 调试线协议(J...
分类:
其他好文 时间:
2015-01-30 16:49:44
阅读次数:
173