我正在用 Java 编写程序
在这个程序中,我正在读取和更改一组数据。这是代码示例:
public double computation() {
char c = 0;
char target = 'a';
int x = 0, y = 1;
for (int i = 0; i < data.length; i++) {
// Read Data
c = data[index[i]];
if (c == target)
x++;
else
y++;
//Change Value
if (Character.isUpperCase(c))
Character.toLowerCase(c);
else
Character.toUpperCase(c);
//Write Data
data[index[i]] = c;
}
return (double) x / (double) y;
}
顺便说一句,INDEX 数组以随机顺序包含 DATA 数组的索引,以防止预取。我通过在 INDEX 数组中使用随机索引来强制错过所有缓存访问。
现在我想通过收集有关其命中率的信息来检查 CPU 缓存的行为。
有没有为此目的开发的工具?如果没有,有什么技术吗?