[Перевод] Когда использовать параллельный стрим в Java
Параллельные стримы в Java 8 выглядят как бесплатное ускорение: добавил .parallel() — и все ядра побежали работать. Но по факту всё сложнее, так как распараллеливание имеет накладные расходы, зависит от того, насколько хорошо делится источник данных, сколько стоит объединение результатов, и даже от локальности данных в памяти. В новом переводе от команды Spring АйО на примерах и бенчмарках разберем, почему простая свёртка на маленьких диапазонах может стать медленнее , почему ArrayList часто выигрывает у LinkedList в параллели, как reduce может неожиданно сломаться из-за неверного identity , и что вообще происходит внутри common ForkJoinPool .
https://habr.com/ru/companies/spring_aio/articles/1005180/
#java #kotlin #stream #stream_api #streams #jvm #performance
