【问题标题】:Understanding the Java Memory Model and Garbage Collection [closed]了解 Java 内存模型和垃圾收集 [关闭]
【发布时间】:2013-06-05 06:53:29
【问题描述】:

我往往会收到很多学生或寻找资源的同事提出的这些问题,因此我希望为他们提供更明确的参考。不妨与社区分享。

  • Java 内存模型是如何表示的,它有什么特点?

  • 垃圾收集在一般情况下和最常见的 JVM 中是如何工作的?

  • 如何测试和调整我的 Java 应用程序的性能?

【问题讨论】:

  • 这是一个非常广泛的问题......但我同意这是每个 Java 程序员都应该知道的。
  • 很好的参考资料!

标签: java tags


【解决方案1】:

内存基础

  • 每个程序员都应该了解的关于内存的知识 - Ulrich Drepper [PDF]

Java Language and Virtual Machine Specifications

  • Java 虚拟机规范 [PDFHTML 用于 Java SE 7]

Java Memory Model

  • 编程高级主题:Java 内存模型 - Jeremy Manson [video]
  • Java 内存模型上的资源集合 - 由 Bill Pugh (collection) 编辑和编译
  • HotSpot 虚拟机中的内存管理 - Sun Microsystems (2006) [PDF]
  • 修复 Java 内存模型 - Brian Goetz,IBM Java 开发人员系列 () [part 1, part 2]

Java 性能

  • Java 性能的 9 个谬误 - Ben Evans [video + slides]
  • JVM 性能魔术技巧 - Takipi [blog + slides]
  • Java 和机器 - Kirk Pepperdine,Martijn Verburg [video + slides]
  • 性能测试 Java 应用程序 - Martin Thompson [video + slides]
  • 构建内存高效的 Java 应用程序:实践和挑战 - Mitchell, Sevitsky (2009) [PDF]

高级主题和实际用例

  • 优化 Google 的仓库级计算机:NUMA 体验 - 加利福尼亚大学和 Google [PDF]
  • MegaPipe:可扩展网络 I/O 的新编程接口 [Google Doc]
  • 打破神话的现代硬件获得“机械同情” - Martin Thompson [PDF] (幻灯片)
  • 缓存:更有效地了解、衡量和使用您的 CPU 缓存 - Richard Warburton [video + slides]
  • JVM 能做到吗?! - Cliff Click [video]

GC 调优

补充 StackExchange 问题和答案

还有很多很多,我需要从我的档案或中间管中挖掘出来。

【讨论】:

  • 您如何看待“Java 并发实践”作为编写适用于 Java 内存模型的代码的指南?
  • @PatriciaShanahan:我认为总的来说,Brian Goetz 的任何东西都值得了解。
  • 我觉得这是一个“仅链接的答案”。而且不是一个好人。您的意思是要了解 JMM 和 GC,我们需要先阅读 600 页长的 pdf 和您的 30 个链接?
  • @Matsemann:按顺序:是的。可以说。不,但这会有所帮助。所以,它们很有帮助,正如我所提到的,我经常被问到这个问题(注意这也是我的问题),虽然这些资源中的大多数可以通过相对快速的在线搜索找到,但这有助于整合一些资源并拥有一个指向人们的地方(这可能会在搜索结果中出现相当高的位置),以及可以编辑的地方。对我来说似乎足够好,对许多人有用。我不否认仅链接方面和真正适合这里的问题。如果必须(或编辑),请随意标记它。
  • 显然有人标记了这个问题。我认为您的链接可能是一个很好的资源,但是要挖掘的太多了。如果有的话,社区 wiki 更合适。
【解决方案2】:

William Pugh,“JSR-133:Java 内存模型和线程规范”的作者之一,在这里维护了一个关于内存模型的网页:

http://www.cs.umd.edu/~pugh/java/memoryModel/

完整的 JSR-133 可以在这里找到:

http://www.cs.umd.edu/~pugh/java/memoryModel/jsr133.pdf

Java 语言规范第 17.4 节内存模型也相关:

http://docs.oracle.com/javase/specs/jls/se7/html/jls-17.html#jls-17.4

【讨论】:

    猜你喜欢
    • 2015-12-19
    • 2012-06-28
    • 2011-02-26
    • 2014-03-31
    • 2012-06-12
    • 1970-01-01
    • 2014-11-19
    • 1970-01-01
    • 2021-03-25
    相关资源
    最近更新 更多