首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有办法在Java中监控编译后的代码缓存?

有没有办法在Java中监控编译后的代码缓存?
EN

Stack Overflow用户
提问于 2010-03-03 08:48:26
回答 3查看 5.3K关注 0票数 5

好的--我知道我可以像这样运行我的java进程:

代码语言:javascript
复制
java -XX:+PrintCompilation <FooProgram>

我可以看到类似这样的输出:

代码语言:javascript
复制
c:\>java -XX:+PrintCompilation -jar c:\FooProgram.jar
  1       java.lang.String::charAt (33 bytes)
  2       java.lang.Math::max (11 bytes)
  1%      java.util.jar.JarFile::hasClassPathAttribute @ 78 (197 bytes)
  3       java.lang.String::hashCode (60 bytes)
  4       java.lang.String::indexOf (151 bytes)
  5       java.util.Properties$LineReader::readLine (452 bytes)
  6       java.lang.Object::<init> (1 bytes)
  7       java.lang.String::indexOf (166 bytes)
  8       java.lang.String::equals (88 bytes)

让我知道哪些方法被编译,未编译,被标记为僵尸,等等。有没有办法监控这些方法被编译到的代码缓存的使用情况?当编译器代码缓存已满时,我会看到这样一条消息:“我已满,不再为您编译了……”,但似乎这是一个滞后的指示,表明我们有问题。我知道如何打印代码缓存的最大大小,我真正想要的是一种方法,看看它是如何随着时间的推移而填满的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-03-04 06:52:09

JConsole会告诉你的。您还可以在应用程序服务器中安装Java-monitor,并在主机的“查看所有测量结果”页面中查看代码缓存。http://java-monitor.com

票数 1
EN

Stack Overflow用户

发布于 2014-10-14 16:57:14

老问题但是..。不管怎样我会回答的..。我已经构建了一个VisualVM插件,它将监控有关代码缓存的统计数据。它已经包含在开源版本的插件存储库中。或者,您可以从java.net下载它和源代码。

哦,忘记链接了.https://java.net/projects/memorypoolview/

票数 2
EN

Stack Overflow用户

发布于 2016-06-07 15:16:30

从Java8开始,您可以使用-XX:+PrintCodeCache more details can be found in this paper

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2368068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档