【问题标题】:what functions are included in a JVMJVM 中包含哪些功能
【发布时间】:2010-08-17 14:42:22
【问题描述】:

JVM的功能是什么?我只知道:

  • JIT 编译器
  • GC
  • 内存分配器

加载 Java 应用程序时会执行哪些步骤?

我想知道如果我将 Java 应用程序的加载时间与这些步骤进行比较:

  • InitializeNativeTarget 在 LLVM 上
  • 一些 GC 初始化
  • 一些 Qt/GTK/无论什么初始化
  • 应用程序部分的一些 JIT/提前编译
  • 应用程序本身

在我看来,加载 JVM 所需的时间比执行上面列出的步骤所需的时间要长得多。那么除此之外它还有什么作用呢?

【问题讨论】:

标签: java jvm jit llvm


【解决方案1】:

这实际上是一个非常有趣的问题 - 自己看看,运行一个 Hello World 程序,为 java 可执行文件提供选项 -XX:-TraceClassLoading。

【讨论】:

  • 我试过java -verbose:gc -XX:-TraceClassLoading JavaHelloWorld,但它输出的只是Hello World。我错过了什么吗?
  • @Albert: -XX:+TraceClassLoading
  • 嗯,这似乎只是告诉我 JVM 加载了哪些类(很多)。但是在此之前 JVM 本身在做什么呢?可以从中剥离什么?因为在我看来,它几乎不需要出现在那里的任何东西。
【解决方案2】:

它从头开始引导整个 JVM。这需要一段时间。

【讨论】:

  • 引导程序到底长什么样?
  • 使用“-verbose”标志查看每个类,因为它被类加载器拉入。你可能会感到惊讶...
猜你喜欢
  • 1970-01-01
  • 2018-01-09
  • 1970-01-01
  • 2017-06-25
  • 2021-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多