JVM工作内存和CPU缓存一样吗
Is JVM working memory the same as CPU cache
JVM spec说每个线程都有自己的working memory,列举了use, assign, load, read, store, write, lock, unlock几个操作。工作内存与CPU缓存相同,还是工作内存与线程堆栈相同?
规范还说“当线程执行一个程序时,它对这些工作副本进行操作。”因此,当 JVM 执行指令将操作数堆栈中的两个值相加时,它会从堆栈中弹出两个操作数并将它们相加。在这种情况下,这些弹出操作数的工作副本是什么以及在哪里?
没有。您可以访问工作记忆。您实际上无权访问缓存。您不应该知道那里有什么,它会 look-ahead 获取和保存 CPU 缓存中的先前值。如果处理得当,缓存应该是不可见的,只是在幕后加快速度。实际工作记忆存储工作等的东西
您正在查看最旧的规格,即 still online at Oracle(在页面底部)。自本文件发布以来,我们谈论的时间已经过去了至少 16 年。但即使在过时的文档中,您也会发现发布时已经过时的章节。
如 beginning of the chapter 所述。
It has been adapted with minimal changes from Chapter 17 of the first edition of The Java™ Language Specification, by James Gosling, Bill Joy, and Guy Steele.
请注意,它说它基于 JLS 的 第一版 ,而当您查看 overview page 时,您会注意到 JLS 的第三版 是描述 Java6 行为的正确版本。值得了解历史背景,即对于 Java5,Java 内存模型已经完全重写,所以我们不是在谈论 Java 语言规范的三个版本之间的微小变化。
从 Java 7 版本的 Java 虚拟机规范开始,不再有 JLS 部分的副本,因此不存在再次不同步的风险。 Java 内存模型的权威来源是 language specification’s chapter.
它根本不使用术语“工作内存”或“主副本”,这是一件好事,因为认为 JVM 的状态在主内存中具有某种绝对真理是错误的内存。
如果您想了解更多有关 JLS 或 JVMS 的信息,您应该从 overview page 开头的最新规范开始,并且只有当您有理由认为可能存在历史问题时您必须了解的差异,请参阅较旧的规范。
JVM spec说每个线程都有自己的working memory,列举了use, assign, load, read, store, write, lock, unlock几个操作。工作内存与CPU缓存相同,还是工作内存与线程堆栈相同?
规范还说“当线程执行一个程序时,它对这些工作副本进行操作。”因此,当 JVM 执行指令将操作数堆栈中的两个值相加时,它会从堆栈中弹出两个操作数并将它们相加。在这种情况下,这些弹出操作数的工作副本是什么以及在哪里?
没有。您可以访问工作记忆。您实际上无权访问缓存。您不应该知道那里有什么,它会 look-ahead 获取和保存 CPU 缓存中的先前值。如果处理得当,缓存应该是不可见的,只是在幕后加快速度。实际工作记忆存储工作等的东西
您正在查看最旧的规格,即 still online at Oracle(在页面底部)。自本文件发布以来,我们谈论的时间已经过去了至少 16 年。但即使在过时的文档中,您也会发现发布时已经过时的章节。
如 beginning of the chapter 所述。
It has been adapted with minimal changes from Chapter 17 of the first edition of The Java™ Language Specification, by James Gosling, Bill Joy, and Guy Steele.
请注意,它说它基于 JLS 的 第一版 ,而当您查看 overview page 时,您会注意到 JLS 的第三版 是描述 Java6 行为的正确版本。值得了解历史背景,即对于 Java5,Java 内存模型已经完全重写,所以我们不是在谈论 Java 语言规范的三个版本之间的微小变化。
从 Java 7 版本的 Java 虚拟机规范开始,不再有 JLS 部分的副本,因此不存在再次不同步的风险。 Java 内存模型的权威来源是 language specification’s chapter.
它根本不使用术语“工作内存”或“主副本”,这是一件好事,因为认为 JVM 的状态在主内存中具有某种绝对真理是错误的内存。
如果您想了解更多有关 JLS 或 JVMS 的信息,您应该从 overview page 开头的最新规范开始,并且只有当您有理由认为可能存在历史问题时您必须了解的差异,请参阅较旧的规范。