From b7999f93753ce19fac0d278484693eb5edbbcd89 Mon Sep 17 00:00:00 2001 From: Zlaman Date: Tue, 31 Mar 2015 00:21:17 +0300 Subject: [PATCH] Adding benchmark --- .../chap1/BenchmarkOfParallelStream.java | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 src/main/java/lambdasinaction/chap1/BenchmarkOfParallelStream.java diff --git a/src/main/java/lambdasinaction/chap1/BenchmarkOfParallelStream.java b/src/main/java/lambdasinaction/chap1/BenchmarkOfParallelStream.java new file mode 100644 index 00000000..d9b18e38 --- /dev/null +++ b/src/main/java/lambdasinaction/chap1/BenchmarkOfParallelStream.java @@ -0,0 +1,35 @@ +package lambdasinaction.chap1; + +import java.util.Arrays; +import java.util.stream.Collectors; + +public class BenchmarkOfParallelStream { + public static void main(String... args) { + String[] array = new String[1000000]; + Arrays.fill(array, "AbadadwbasdasdasdagalamagA"); + System.out.println("Warmup..."); + for (int i = 0; i < 20; ++i) { + sequential(array); + parallel(array); + } + System.out.println("Benchmark..."); + for (int i = 0; i < 5; ++i) { + System.out.printf("Run %d: sequential %s - parallel %s\n", + i, + test(() -> sequential(array)), + test(() -> parallel(array))); + } + } + private static void sequential(String[] array) { + Arrays.stream(array).map(String::toLowerCase).collect(Collectors.toList()); + } + private static void parallel(String[] array) { + Arrays.stream(array).parallel().map(String::toLowerCase).collect(Collectors.toList()); + } + private static String test(Runnable runnable) { + long start = System.currentTimeMillis(); + runnable.run(); + long elapsed = System.currentTimeMillis() - start; + return String.format("%4.2fs", elapsed / 1000.0); + } +} \ No newline at end of file