@GenerateMicroBenchmark public int fastSumOfSquares() { // TODO: implement faster version of slowSumOfSquares here return 0; }
@GenerateMicroBenchmark public int slowSumOfSquares() { return linkedListOfNumbers.parallelStream() .map(x -> x * x) .reduce(0, (acc, x) -> acc + x); }
@GenerateMicroBenchmark public int serialArray() { return IntStream.of(array).sum(); }
@GenerateMicroBenchmark public int serialRange() { return IntStream.range(0, size).sum(); }
@GenerateMicroBenchmark // BEGIN slowSumOfSquares public int slowSumOfSquares() { return linkedListOfNumbers.parallelStream() .map(x -> x * x) .reduce(0, (acc, x) -> acc + x); } // END slowSumOfSquares
@GenerateMicroBenchmark public int serialSlowSumOfSquares() { return linkedListOfNumbers.stream() .map(x -> x * x) .reduce(0, (acc, x) -> acc + x); }
@GenerateMicroBenchmark public int serialIntermediateSumOfSquares() { return arrayListOfNumbers.stream() .map(x -> x * x) .reduce(0, (acc, x) -> acc + x); }
@GenerateMicroBenchmark public int fastSumOfSquares() { return arrayListOfNumbers.parallelStream() .mapToInt(x -> x * x) .sum(); }
@GenerateMicroBenchmark public int serialFastSumOfSquares() { return arrayListOfNumbers.stream() .mapToInt(x -> x * x) .sum(); }
@GenerateMicroBenchmark public int serialArrayList() { return arrayList.stream().mapToInt(i -> i).sum(); }
@GenerateMicroBenchmark public int intermediateSumOfSquares() { return arrayListOfNumbers.parallelStream() .map(x -> x * x) .reduce(0, (acc, x) -> acc + x); }
@GenerateMicroBenchmark // BEGIN slowSumOfSquares public int slowSumOfSquares() { return linkedListOfNumbers.parallelStream() .map(x -> x * x) .reduce(0, (acc, x) -> acc + x); } // END slowSumOfSquares
@GenerateMicroBenchmark public int arrayList() { return arrayList.parallelStream().mapToInt(i -> i).sum(); }
@GenerateMicroBenchmark // BEGIN parallel public int parallelArraySum() { return albums.parallelStream() .flatMap(Album::getTracks) .mapToInt(Track::getLength) .sum(); } // END parallel
@GenerateMicroBenchmark // BEGIN serial public int serialArraySum() { return albums.stream() .flatMap(Album::getTracks) .mapToInt(Track::getLength) .sum(); } // END serial
@GenerateMicroBenchmark public int treeSet() { return treeSet.parallelStream().mapToInt(i -> i).sum(); }
@GenerateMicroBenchmark public int hashSet() { return hashSet.parallelStream().mapToInt(i -> i).sum(); }
@GenerateMicroBenchmark public int serialTreeSet() { return treeSet.stream().mapToInt(i -> i).sum(); }
@GenerateMicroBenchmark public int serialLinkedList() { return linkedList.stream().mapToInt(i -> i).sum(); }
@GenerateMicroBenchmark public int fastSumOfSquares() { return Exercises.replaceThisWithSolution(); }