Потоки Java 8: почему параллельный поток медленнее?

Я играю с потоками Java 8 и не могу понять результаты производительности, которые я получаю. У меня есть 2-х ядерный процессор (Intel i73520M), Windows 8 x64 и 64-битное обновление Java 8. Я делаю простую карту для потока / параллельного потока строк и обнаружил, что параллельная версия несколько медленнее.

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

Разве параллельная версия не должна быть быстрее, учитывая тот факт, что у меня 2 ядра процессора? Может ли кто-нибудь дать мне подсказку, почему параллельная версия медленнее?

Ответы на вопрос(3)

Ваш ответ на вопрос