Java 代码向量化与即时编译器辅助对象回收的研究与实践
1. Java 代码向量化
在 Java 编程中,向量化是一种提升程序性能的有效手段。下面我们先来看一段原始的 Java 代码:
for (int i = 1; i < N; i++) {
t1 = b[i]; // SCC 0
t2 = c[i]; // SCC 1
t3 = t1 * t2; // SCC 2
t4 = a[i - 1]; // SCC 3
t5 = t4 + t3; // SCC 3
a[i] = t5; // SCC 3
t6 = t5 * C; // SCC 4
d[i] = t6; // SCC 5
}
经过向量化转换后的代码如下:
for (int i = 1; i < N; i++) {
v1 = b[i:i+3]; // t1 -> [0, 0, 0, 0, v1]
v2 = c[i:i+3]; // t2 -> [0, 0, 0, 0, v2]
v3 = v1 * v2; // t3 -> [0, 0, 0, 0, v3]
s1 = a[i - 1]; // t4 -> [s1, 0, 0, 0, 0]
s2 = vec_extract(v3, 0);
// t3 -> [s2, 0, 0, 0, v3]
s3 = s1 + s2; // t5
超级会员免费看
订阅专栏 解锁全文
285

被折叠的 条评论
为什么被折叠?



