[Перевод] Когда использовать параллельный стрим в 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

Когда использовать параллельный стрим в Java

Параллельные стримы в Java 8 выглядят как бесплатное ускорение: добавил .parallel() — и все ядра побежали работать. Но по факту всё сложнее, так как распараллеливание имеет накладные расходы, зависит...

Хабр

Вредные советы Java: просто используй Parellel Stream

Stream'ы в java явление давно не новое. Старая добрая Java 8 появилась на свет более 10 лет назад. С появлением Stream API жизнь стала проще и веселее. Но есть в Stream API два гадких утёнка: Stream#close и Stream#parallel. С первым все достаточное просто — если не уверен в источнике откуда берется Stream — то он может быть вполне себе ресурсом и требовать try‑with‑resources (привет java.nio.file.Files#list ). Cо вторым куда веселее...

https://habr.com/ru/articles/929120/

#forkjoinpool #stream_api #java

Вредные советы Java: просто используй Parellel Stream

Привет, Хабр! В ежегодных поисках ответа на вопрос «как же удобно и просто распараллелить исполнение задач на Java», я частенько натыкаюсь на вариант основанный...

Хабр

Стримы в Java: Как перестать бояться и полюбить filter-map-reduce (Часть 2)

В первой части мы поговорили про основы Stream API и убедились, как элегантно можно обрабатывать данные, используя цепочки операций. Но возможности на этом не ограничиваются. Пришло время подняться на новый уровень и посмотреть, что случается, когда добавляется параллельность. Как работают параллельные стримы под капотом? Чем они отличаются от ручного управления потоками? А как же всемогущий Spring и необычная RxJava? Именно об этом и пойдёт речь во второй части.

https://habr.com/ru/articles/885834/

#java #stream #stream_api #spring #spring_data #rxjava #reactive_streams #filter #map #reduce

Стримы в Java: Как перестать бояться и полюбить filter-map-reduce (Часть 2)

В первой части мы поговорили про основы Stream API и убедились, как элегантно можно обрабатывать данные, используя цепочки операций. Но возможности на этом не ограничиваются. Пришло время подняться на...

Хабр

Стримы в Java: Как перестать бояться и полюбить filter-map-reduce

Когда-то я считал, что священный грааль итераций — это старый добрый цикл for . Да, тот самый, с индексами, который шагал по массивам как бравый солдат по полю. Я обожал мои циклы и охотно избегал всего, что могло их заменить. Но потом появился он — Stream API . Новомодный, загадочный, пугающий, словно неведомый зверь из функционального леса. И вот я, стоя по колено в коде, задумался: "Как перестать бояться и полюбить filter-map-reduce?"

https://habr.com/ru/articles/885298/

#java #stream #stream_api #map #reduce #filter

Стримы в Java: Как перестать бояться и полюбить filter-map-reduce

Когда-то я считал, что священный грааль итераций — это старый добрый цикл for . Да, тот самый, с индексами, который шагал по массивам как бравый солдат по полю. Я обожал мои циклы и охотно избегал...

Хабр

[Перевод] Еще раз о перформансе стримов в Java

Перевод статьи, где автор замеряет перформанс Stream API в Java на около-реалистичных (и не очень) задачах. Как и автору, мне нередко на глаза попадаются заявления что мол вся эта функциональщина в джаве - баловство и скорее вредный сахар. И что старовер с джавы 1.6 напишет на циклах заведомо более быстрый код, чем хипстер на стримах. Также в статье наглядно демонстрируется, в каких именно условиях параллельные стримы могут начать приносить пользу.

https://habr.com/ru/articles/807647/

#java #stream_api #функциональное_программирование #производительность #перформанс

Еще раз о перформансе стримов в Java

Время от времени я наблюдаю или даже бываю втянутым в спор о перформансе стримов в джаве. Общеизвестно, что стримы это компромисс между перформансом и удобством. Однако я не нашел вменяемого набора...

Хабр