在Java中,可以使用System.currentTimeMillis()
方法来捕获并行流处理的计时。下面是一个示例代码:
import java.util.Arrays;
import java.util.concurrent.TimeUnit;
import java.util.stream.IntStream;
public class ParallelStreamTimingExample {
public static void main(String[] args) {
int[] numbers = IntStream.rangeClosed(1, 10_000_000).toArray();
// 串行流处理的计时
long startTime = System.currentTimeMillis();
long sum = Arrays.stream(numbers)
.sum();
long endTime = System.currentTimeMillis();
long duration = endTime - startTime;
System.out.println("串行流处理时间(毫秒): " + duration);
// 并行流处理的计时
startTime = System.currentTimeMillis();
sum = Arrays.stream(numbers)
.parallel()
.sum();
endTime = System.currentTimeMillis();
duration = endTime - startTime;
System.out.println("并行流处理时间(毫秒): " + duration);
}
}
在上面的示例中,使用System.currentTimeMillis()
方法来捕获串行流处理和并行流处理的计时。首先创建一个包含1到10000000的整数数组,然后通过Arrays.stream()
方法将其转换为流。在串行流处理中,调用sum()
方法对流中的元素进行求和,并通过System.currentTimeMillis()
方法来记录开始和结束时间。计算时间差后,将其输出。然后,在并行流处理中,通过在流上调用parallel()
方法将其转换为并行流,再次调用sum()
方法进行求和,并记录开始和结束时间。最后,计算时间差并输出。