Java JVM中包含哪些函数
JVM的功能是什么?我只知道:Java JVM中包含哪些函数,java,jvm,jit,llvm,Java,Jvm,Jit,Llvm,JVM的功能是什么?我只知道: JIT编译器 GC 内存分配器 加载Java应用程序时,它会执行哪些步骤 我想知道,如果我将Java应用程序的加载时间与以下步骤进行比较: 初始化LLVM上的ActivityTarget 一些GC初始化 一些Qt/GTK/init 部分应用程序的JIT/提前编译 应用程序初始化自身 在我看来,JVM加载所需的时间比执行上面列出的步骤所需的时间要长得多。那么除此之外,它还能做什么呢?这实际上是一个非常有趣的问题——你自己看看,运行一个Hello World程
- JIT编译器
- GC
- 内存分配器
初始化LLVM上的ActivityTarget
- 一些GC初始化
- 一些Qt/GTK/init
- 部分应用程序的JIT/提前编译
- 应用程序初始化自身
在我看来,JVM加载所需的时间比执行上面列出的步骤所需的时间要长得多。那么除此之外,它还能做什么呢?这实际上是一个非常有趣的问题——你自己看看,运行一个Hello World程序,给java可执行文件提供-XX:-TraceClassLoading选项。它从头开始引导整个JVM。这需要一段时间。你说呢?我认为这不应该被否决,这是一个相当有趣的问题。我尝试了
java-verbose:gc-XX:-TraceClassLoading JavaHelloWorld
,但它的输出只是Hello World
。我错过了什么吗?@Albert:-XX:+TraceClassLoading
Hm,这似乎向我展示了JVM加载了哪些类(很多)。但在此之前JVM本身在做什么?还有什么可以从中剥离出来呢?因为在我看来,它几乎不需要出现在那里的任何东西。引导程序到底是什么样子的?使用“-verbose”标志查看每个类被类装入器拉入时的情况。你可能会感到惊讶。。。