gpt4 book ai didi

java - 如何在开源 Java 中禁用数组边界检查?

转载 作者:行者123 更新时间:2023-11-30 09:58:54 25 4
gpt4 key购买 nike

现在 Java 是开源的,我想做的第一件事就是禁用对某些代码块的数组边界检查,我非常确定我不能越界并且性能非常重要。

现在,我不是编译器/语法专家,所以任何语法对我来说都足够好:这是我能想到的:

pragma_disable_array_bounds_checking_begin
for(x = xMin; x < xMax; x += xIncr) {
for(y = yMin; y < yMax; y += yIncr) {
for(z = zMin; z < zMax; x += zIncr) {
sample_and_draw(voxel[x][y][z]);
}
}
}
pragma_disable_array_bounds_checking_end

我明白在这次更改后,我的本地版本将不再是 Java。但我不太关心,因为我总是可以将重新编译的 VM 与我的应用捆绑在一起。

我不知道如何着手进行这种重要的更改,因此出现了这个问题。请注意,我对 JNI 方法不感兴趣。

最佳答案

如果您知道数组索引不能越界,也许编译器也可以,他们最近在静态数据流和逃逸分析方面取得了令人印象深刻的成果。我会先检查一下是否正在执行边界检查。 javap 可以在这里帮助你。

当然,我假设您正在遵循 Knuth 的建议,不要过早优化,并且您已经测量了您的应用程序并确定这种差异值得花时间研究。如果是这样,请发布您的结果摘要,因为这对我来说非常有趣。即使我的应用程序不会从此类调整中受益。

关于java - 如何在开源 Java 中禁用数组边界检查?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/249347/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com