Java 最小内存访问数
考虑java语句的执行Java 最小内存访问数,java,memory,architecture,stack,execution-time,Java,Memory,Architecture,Stack,Execution Time,考虑java语句的执行 e=(a-b)+(c-d) 使用以下各项所需的最小内存访问次数是多少: 基于累加器架构的处理器 具有至少4个通用寄存器的处理器 具有基于堆栈的体系结构的处理器 Java代码,编译后的字节码,我们写的不会在它在JVM上执行的处理器中执行。然后,JIT编译器负责执行该语句,而JIT中语句e=(a-b)+(c-d)的解释对于Java程序员来说是隐藏的 JVM使用堆栈架构,您可以使用javap命令查看字节码执行情况 private static void test(in
e=(a-b)+(c-d)
使用以下各项所需的最小内存访问次数是多少:
Java代码,编译后的字节码,我们写的不会在它在JVM上执行的处理器中执行。然后,JIT编译器负责执行该语句,而JIT中语句e=(a-b)+(c-d)的解释对于Java程序员来说是隐藏的 JVM使用堆栈架构,您可以使用javap命令查看字节码执行情况
private static void test(int a, int b, int c, int d) {
int e = (a - b) + (c - d);
}
上述方法的字节码为
private static void test(int, int, int, int);
flags: ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=5, args_size=4
0: iload_0
1: iload_1
2: isub
3: iload_2
4: iload_3
5: isub
6: iadd
7: istore 4
9: return
LineNumberTable:
line 36: 0
line 37: 9
LocalVariableTable:
Start Length Slot Name Signature
0 10 0 a I
0 10 1 b I
0 10 2 c I
0 10 3 d I
9 1 4 e I
根据本例中的字节码,堆栈已被访问4次(i_加载) 我在想象一个爪哇强盗拿枪指着你的头?你应该把它放在
policyOverflow
上,取而代之的是:/你尝试了什么?老兄!做你自己的功课。在每种情况下,最小值都是零,因为编译器可能会优化计算(gcc
和javac
编译器可以做到这一点),一个存储等于5。