程序计数器Java程序的寄存器值

时间:2012-04-24 09:51:09

标签: java profiling

是否可以获取正在运行的Java应用程序的程序计数器(PC)寄存器值,尤其是在Android模拟器中运行的应用程序?例如,gprof随机采样PC寄存器值,以便找出哪个函数正在消耗程序的运行时间。这样的概念对JVM有意义吗?为了澄清,我想要程序计数器的实际值。

另外,有什么方法可以衡量代码在内存中“散布”的程度吗?通过查看objdump返回的地址范围,可以在常规程序中对此进行测量。但是,这种方法不处理共享库的地址,这也是我在JVM上下文中无法理解的概念。

1 个答案:

答案 0 :(得分:0)

许多Java分析器(如VisualVM)可以进行基于抽样的分析,这可能与您描述的一样。

对于代码内存的使用,这就是垃圾收集器的“永久代”(PermGen)主要包含的内容; VisualVM也可以显示它。