обектов и делает над ними вычисления, делает он это следующим образом: https://pastebin.com/ChpymPPV
Сейчас размер входящего списка около 500-1000 елементов и время вычисления составляет около 2 минут. Планируется увеличение списка в 10 раз, а это уже около 20 минут, что долго.
Интересно узнать, может есть какие-то подходы или бест практики. (Не обязательно использовать Java, можно Kotlin, Scala, Python)
Ну для начала замерить время, и понять где вы теряете больше всего
Где-то читал/слышал, что parallelStream может порой вести себя хуже чем sequential. Ко всему прочему зачем создавать новый FJP если используешь его не по назначению? Чтобы что-нибудь submit() можно попросить у FJP commonPool - ты им пользуешься внутри через parallelStream, при этом лишаешь его одного воркер-потока этим самым submit. Да и нужен ли тебе submit, если его результат не обрабатывается? И не понятно, что ты с атомиком делаешь, он где мутируется?
Подскажите, а почему так долго для такого маленького списка? Там есть IO?
Обсуждают сегодня