Java 8的流:为什么并行流速度较慢?
- 论坛
- Java 8的流:为什么并行流速度较慢?
4 浏览
Java 8的流:为什么并行流速度较慢?
我正在使用Java 8的流功能,并且无法理解我得到的性能结果。我有一颗双核CPU(Intel i73520M),Windows 8 x64和64位Java 8更新5。我正在对字符串流/并行流进行简单的映射,并发现并行版本略慢。
Function, Long> timeOperation = (Stream stream) -> { long time1 = System.nanoTime(); final List list = stream .map(String::toLowerCase) .collect(Collectors.toList()); long time2 = System.nanoTime(); return time2 - time1; }; Consumer > printTime = stream -> System.out.println(timeOperation.apply(stream) / 1000000f); String[] array = new String[1000000]; Arrays.fill(array, "AbabagalamagA"); printTime.accept(Arrays.stream(array)); // 打印大约为600 printTime.accept(Arrays.stream(array).parallel()); // 打印大约为900
考虑到我有两个CPU核心,按理说并行版本应该更快,对吗?
有人能给我一个提示为什么并行版本更慢吗?