寄存器对JVM指令来说是不可见的
JVM的指令集不会直接使用寄存器作为操作数,也就是说JVM指令看不到寄存器。
java中的volatile也跟寄存器无关,每个线程保留的变量副本不是在寄存器里,而是在JMM定义的“工作内存”里。这个内存并非寄存器。
当然JVM在运行时可以把某些内存映射到寄存器,寄存器的存取速度比内存要快得多,所以这样可以提高一点性能。 但不管怎么样,这只是运行时的优化,就JVM指令模型本身而言,它是看不到寄存器的。
发布时间: 2013-03-28 10:20:24 作者: rapoo
寄存器对JVM指令来说是不可见的
JVM的指令集不会直接使用寄存器作为操作数,也就是说JVM指令看不到寄存器。
java中的volatile也跟寄存器无关,每个线程保留的变量副本不是在寄存器里,而是在JMM定义的“工作内存”里。这个内存并非寄存器。
当然JVM在运行时可以把某些内存映射到寄存器,寄存器的存取速度比内存要快得多,所以这样可以提高一点性能。 但不管怎么样,这只是运行时的优化,就JVM指令模型本身而言,它是看不到寄存器的。