相关疑难解决方法(0)

“循环取消切换”优化不起作用

听说Java支持“Loop Unswitching”,所以就在JMH上简单测试了一下。

我认为在 JIT 之后它们会完全相同。为什么是这样?

private final int TIMES = 1_000_000;
private boolean bool;
private Random r = new Random(93);

@Setup(Level.Invocation)
public void fresh() {
    bool = r.nextBoolean();
}

@Benchmark
public void test1(Blackhole bh) {
    for (int i = 0; i < TIMES; i++) {
        if (bool) {
            bh.consume(1);
        } else {
            bh.consume(2);
        }
    }
}

@Benchmark
public void test2(Blackhole bh) {
    if (bool) {
        for (int i = 0; i < TIMES; i++) {
            bh.consume(1);
        }
    } else { …
Run Code Online (Sandbox Code Playgroud)

java performance jit

2
推荐指数
1
解决办法
202
查看次数

标签 统计

java ×1

jit ×1

performance ×1