代码之家  ›  专栏  ›  技术社区  ›  Amir Afghani

有什么方法可以监视Java中编译的代码缓存吗?

  •  5
  • Amir Afghani  · 技术社区  · 14 年前

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

    java -XX:+PrintCompilation <FooProgram>
    

    我可以看到这样的输出:

    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)
    

    3 回复  |  直到 14 年前
        1
  •  1
  •   Kees Jan Koster    14 年前

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

        3
  •  2
  •   ZZ 5    8 年前

    因为Java8可以使用 -XX:+PrintCodeCache 更多细节 can be found in this paper