相关疑难解决方法(0)

Java 8的流:为什么并行流更慢?

我正在玩Java 8的流,无法理解我得到的性能结果.我有2个核心CPU(Intel i73520M),Windows 8 x64和64位Java 8更新5.我正在做简单的字符串流/并行流Strings,发现并行版本有点慢.

Function<Stream<String>, Long> timeOperation = (Stream<String> stream) -> {
  long time1 = System.nanoTime();
  final List<String> list = 
     stream
       .map(String::toLowerCase)
       .collect(Collectors.toList());
  long time2 = System.nanoTime();
  return time2 - time1;
};

Consumer<Stream<String>> printTime = stream ->
  System.out.println(timeOperation.apply(stream) / 1000000f);

String[] array = new String[1000000];
Arrays.fill(array, "AbabagalamagA");

printTime.accept(Arrays.stream(array));            // prints around 600
printTime.accept(Arrays.stream(array).parallel()); // prints around 900
Run Code Online (Sandbox Code Playgroud)

考虑到我有2个CPU内核的事实,并行版本不应该更快吗?有人能给我一个暗示为什么并行版本更慢?

java parallel-processing performance java-8 java-stream

53
推荐指数
3
解决办法
3万
查看次数

Arrays.sort()和Arrays.parallelSort()之间的区别

正在浏览这里Java 8提到的功能.无法理解究竟是什么.有人可以解释一下和之间的实际区别是什么?parallelSort()sort()parallelSort()

java arrays sorting java-8

23
推荐指数
3
解决办法
2万
查看次数