英文不好,所以就不翻译了:
b Blocking compiler (always set for client)
* Generating a native wrapper
% On stack replacement (where the compiled code is running)
! Method has exception handlers
s Method declared as synchronized
n Method declared as native
made non entrant compilation was wrong/incomplete, no future callers will use this version
made zombie code is not in use and ready for GC
"made not entrant" and "made zombie"
Zombie methods are methods whose code has been made invalid by class loading. Generally the server compiler makes aggressive inlining decisions of non-final methods. As long as the inlined method is never overridden the code is correct. When a subclass is loaded and the method overridden, the compiled code is broken for all future calls to it. The code gets declared "not entrant" (no future callers to the broken code), but sometimes existing callers can keep using the code. In the case of inlining, that's not good enough; existing callers' stack frames are "deoptimized" when they return to the code from nested calls (or just if they are running in the code). When no more stack frames hold PC's into the broken code it's declared a "zombie" - ready for removal once the GC gets around to it.
原文地址:http://blog.joda.org/2011/08/printcompilation-jvm-flag.html
分享到:
相关推荐
内容概要 本教程详细介绍了JVM(Java虚拟机)的结构、类型和编译器模式、参数分类、即时编译器(JIT)诊断工具、垃圾回收机制...工具和命令:使用 -XX:+PrintCompilation、-XX:+UseCodeCacheFlushing 等监控和调试JVM。
Java虚拟机(JVM)是Java程序运行的基础,它负责解释和执行字节码,管理内存,以及优化代码。JVM参数设置对于调整应用程序的性能、优化资源利用和确保系统稳定性至关重要。本篇文章将深入探讨JVM参数设置的各个方面...
- `-printcompilation pid`: 显示编译信息。 例如: ```bash jstat -gcutil 12345 ``` 此命令会显示PID为12345的JVM各代内存使用率的情况。 ##### 3. jinfo:Java配置信息工具 - **功能**:`jinfo` 允许用户查询和...
`-XX:CompileThreshold`设定编译触发阈值,`-XX:+PrintCompilation`显示编译信息。 9. **操作系统的交互**:JVM性能也受操作系统影响,如内存分配、CPU亲和性等。`-XX:+UseLargePages`尝试使用大页内存,降低TLB...
指令行参数选项解释如下: * -q 不输出类名、Jar 名和传入 main 方法的参数 * -m 输出传入 main 方法的参数 * -l 输出 main 类或 Jar 的全限定名 * -v 输出传入 JVM 的参数 例如:jps -m -l 2458 org.artifactory....
- `-XX:+PrintCompilation`:显示哪些方法被JIT编译。 这份指南可能还涵盖了如何通过这些参数来解决常见的性能问题,例如内存溢出、垃圾收集效率低下的问题,以及如何通过调整参数来改善程序启动时间、响应速度等...
Java虚拟机(JVM)是Java程序运行的基础,它负责解释和执行字节码,管理内存,以及优化代码性能。调整Java虚拟机涉及到多个方面,包括堆内存设置、垃圾收集器选择、线程配置、类加载机制等。下面将详细阐述这些关键...
《JDK12 GC调优秘籍》是针对Java开发人员的一份重要参考...同时,监控和分析日志(如`-XX:+LogCompilation`, `-XX:+PrintAssembly`, `-XX:+PrintCompilation`, `-XX:+PrintInlining`)也是优化过程中必不可少的步骤。
以下是对JVM调优的一些核心知识点的详细解释: 1. **JVM内存模型**:理解JVM内存模型是调优的基础,包括堆内存(分为年轻代和老年代)、元空间、栈内存、方法区和本地方法栈等。关注新生代和老年代的大小设置,以及...
然而,通过添加`-XX:+PrintCompilation`参数观察JIT编译日志,我们发现经过32次重复拷贝的`play()`方法并未被JIT编译,而将其拆分为`play1()`和`play2()`后,这两个方法分别得到了JIT编译,执行效率显著提升。...
* -printcompilation 输出已经被 JIT 编译的方法 jstat 命令可以帮助开发者实时地了解 JVM 的性能和资源消耗情况,从而进行合理的资源分配和性能优化。 3. jstatd - Virtual Machine jstat Daemon jstatd 命令将...
Java虚拟机(JVM)是Java程序运行的核心,它负责解释和执行字节码,为开发者提供了跨平台的运行环境。在Java应用的性能优化中,深入理解JVM的工作原理和进行适当的调优至关重要。本篇文章将对JVM的基础知识进行总结...
Java虚拟机(JVM)是Java程序运行的基础,它负责解释和执行字节码,使得Java具有跨平台的特性。本篇文章将详细讲解JVM的一些常用指令,帮助开发者更好地理解和优化Java应用程序的运行。 首先,我们需要了解JVM的...
WINDOWS查看JAVA编译后的汇编代码,亲测可用,下载后,将其放在{JAVA_HOME}\jre\bin路径下,修改运行配置,添加参数-XX:+UnlockDiagnosticVMOptions -XX:+PrintAssembly -XX:+PrintCompilation运行即可
- `-XX:+TraceClassLoading`和`-XX:+PrintCompilation`等参数可追踪类加载和编译过程。 4. **JConsole与VisualVM** - JConsole和VisualVM是官方提供的JVM监控工具,可以实时查看和分析内存、线程、类加载等信息。...
* -printcompilation:输出已经被 JIT 编译的方法。 jinfo 命令 jinfo 命令是 JVM 配置信息工具,用于实时查看和调整虚拟机各项参数。它可以显示虚拟机的配置信息,例如堆大小、垃圾收集器类型等。 jmap 命令 ...
了解-XX:CompileThreshold、-XX:PrintCompilation等相关参数,可以进一步提升性能。 10. **类与方法的优化**:包括方法内联、逃逸分析、标量替换等优化技术,能够减少方法调用开销,提高代码运行速度。 总的来说,...
1. **JVM参数调优**:Java虚拟机(JVM)的配置参数对于程序性能至关重要。例如,调整堆内存大小(-Xms和-Xmx),新生代与老年代的比例(-XX:NewRatio),垃圾收集器的选择(-XX:+UseConcMarkSweepGC等)等,都能直接影响到...
`XX:+PrintCompilation` 可以用于监控JIT的工作情况,帮助理解编译过程。`XX:+CICompilerCount` 控制JIT编译器的线程数,根据系统资源进行调整。 垃圾收集(Garbage Collection, GC)是Java性能调优的另一个重要...
可通过设置JVM选项如`-XX:MaxInlineSize`和`-XX:FreqInlineSize`来调整内联阈值,但更改这些参数需谨慎,以免适得其反。 为了评估代码对JIT编译的友好程度,可以使用名为Jarscan的工具,它是JITWatch开源工具的一...