关于程序员/开发人员JVM内部的规范性参考

标题很好地反映了我的问题。 我想知道有关JVM(不仅仅是HotSpot,但显然是开始的地方)如何实现或处理特定function的问题是否有良好的资源或跳跃点? 我不是在寻找JLS或JVM规范中的东西 – 我知道先去那里。

例如 :在尝试理解性能问题时,我们经常会进行对话,而不是关于规范所说的内容,而是实际实现中当代最佳实践的样子。 例如,有一些城市神话说“最终的类在Java中表现更好,因为JVM可以内联或以其他方式优化这些东西。” 是否有一般资源我们可以转向评估这些浮动的声明?

我通过HotSpot特定的参考资料回答了我自己的问题。 其他供应商的产品呢? 小型JVM的细节? 多核细节? 平台细节,如果它们有所作为? 其他JVM语言的细节?

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

这得到了ThorbjørnRavnAndersen对一个具体问题的一些有用评论的启发。 我很乐意收集一些其他更有用的例子,超出我上面引用的例子,以激发人们可能想要这些资源的原因。

关于SO的一些有趣的相关问题: JVM中的尾调优化 , Killer JVM特性 , 明天将无用的优化, JVM实现之间的差异 。

编辑添加:我将答案提供给所提及的最佳个人参考, 或者提供指向网站的指针(可能是为了回答这个问题而建立的),最好地集中/编目JVM实施智慧和实际后果。客户语言和开发人员。

  • OpenJDK“JVM Internals”wiki是HotSpot的开始
  • Oracle的Java SE 6性能白皮书及其前身提供了很多见解,但本身并没有组织我的问题
  • 在HotSpot同步时,请在此处查看我的答案 。

前段时间我总结了一个关于高级程序员应该了解jvm内部的简短摘要,并帮助他更好地理解并发性,gc,jit等。 它是基于规范和OpenJDK的集中摘要。