java - 面向程序员/开发人员的 JVM 内部规范引用

标签 java jvm jvm-languages

关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。












想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。

3年前关闭。




Improve this question




标题很好地捕捉了我的问题。我想知道关于 JVM(不仅仅是 HotSpot,但这显然是开始的地方)如何实现或处理特定功能的问题是否有很好的资源或跳跃点?我不是在寻找 JLS 中的东西或 JVM Spec ——我知道先去那里。

例如:当试图理解性能问题时,我们经常谈论的不是规范所说的内容,而是当代最佳实践在实际实现中的样子。例如,有一些城市神话说“final 类在 Java 中表现更好,因为 JVM 可以内联或以其他方式优化这些东西”。是否有我们可以求助的通用资源来评估这些漂浮的主张?

我提供了我自己的问题的答案,其中包含特定于 HotSpot 的引用资料。其他供应商的产品怎么样?小型 JVM 的特性?多核细节?平台细节,如果它们有所不同?其他 JVM 语言的细节?

只是为了避免一些潜在的提示:1)这不是寻找过早的优化(事实上,更好地了解平台应该劝阻受过更好教育的开发人员!);和 2) 我知道 Java 程序员应该专注于漂亮的、可移植的、可随处运行的代码,但对我们中的许多人来说,平台细节最终很重要!

这是受到对 specific question 的一些有用评论的启发。来自 Thorbjørn Ravn Andersen .除了我上面引用的例子之外,我很高兴收集一些其他更有用的例子,以激发人们为什么可能想要这些类型的资源。

关于 SO 的一些有趣的相关问题:Tail-call optimization in JVM , Killer JVM features , optimizations that are going to be useless tomorrow , Differences between JVM implementations .

编辑添加:我会将答案授予所提到的最佳个人引用,或者提供指向网站(可能是针对此问题而构建的)的指针,该网站最集中/目录 JVM 实现智慧以及对客户端语言和开发人员的实际影响.

最佳答案

  • OpenJDK "JVM Internals" wiki是 HotSpot 的起点
  • 甲骨文Java SE 6 Performance White Paper和它的前辈们提供了很多见解,虽然不是针对我的问题本身组织的
  • 关于 HotSpot 的同步,请参阅我的 answer here .
  • 关于java - 面向程序员/开发人员的 JVM 内部规范引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3963643/

    相关文章:

    java - 将 RGBA 值转换为十六进制颜色代码

    java - 有没有类似 Java 的 VirtualEnv 之类的东西?

    java - 了解数独解算器的各个部分

    java - 升级 firebase-crash 导致构建 apk 时出错

    java - C2 编译器在启动时使 CPU 饱和

    java - 增加 MAC OSX 10.12 中的 JVM 最大堆大小

    scala - Scala 中 def foo = {} 和 def foo() = {} 有什么区别?

    java - JVM 实现之间的差异

    java - 如何通过环境变量设置名称中带有下划线的 Spring Boot 属性?

    java - 普通接口(interface)类和只有抽象方法的抽象类有什么区别吗?