You came to this page from the summary. The page is auto-generated by the Makefile at 2025-08-11 05:15.

package org.eolang.benchmark;
import java.util.concurrent.TimeUnit;
import java.util.stream.IntStream;
import java.util.stream.Stream;
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.BenchmarkMode;
import org.openjdk.jmh.annotations.Fork;
import org.openjdk.jmh.annotations.Measurement;
import org.openjdk.jmh.annotations.Mode;
import org.openjdk.jmh.annotations.OutputTimeUnit;
import org.openjdk.jmh.annotations.Scope;
import org.openjdk.jmh.annotations.State;
import org.openjdk.jmh.annotations.Warmup;

@BenchmarkMode(Mode.AverageTime)
@OutputTimeUnit(TimeUnit.MILLISECONDS)
@Warmup(iterations = 10, time = 100, timeUnit = TimeUnit.MILLISECONDS)
@Measurement(iterations = 10, time = 100, timeUnit = TimeUnit.MILLISECONDS)
@State(Scope.Benchmark)
@Fork(1)
public class Big {
    private static final long EXPECTED = 1325403L;
    private static final Integer[] VALUES = IntStream.range(0, 10_000_000)
        .boxed()
        .toArray(Integer[]::new);
    @Benchmark
    public long loop() {
        long count = 0L;
        for (int idx = 0; idx < Big.VALUES.length; idx++) {
            int num = Big.VALUES[idx] + 1;
            if (num % 13 == 0) {
                continue;
            }
            num = num * num / 17;
            if (num % 7 == 0) {
                count += 1L;
            }
        }
        assert count == Big.EXPECTED;
        return count;
    }
    @Benchmark
    public long stream() {
       final long count = Stream.of(Big.VALUES)
           .map(num -> num + 1)
           .filter(num -> num % 13 != 0)
           .map(num -> num * num)
           .map(num -> num / 17)
           .filter(num -> num % 7 == 0)
           .count();
       assert count == Big.EXPECTED;
       return count;
    }
}