Size: a a a

Kotlin Community

2020 May 12

VP

Vladimir Petrakovich in Kotlin Community
Ruslan Ibragimov
И если появилась более приоритетная вычислительная задача, которая при этом еще и к latency чувствительная, то ее диспатчить, заменяя менее приоритетную задачу
А можно просто доверить это шедулеру ОС 😉
источник

AN

Alexander Nozik in Kotlin Community
Ruslan Ibragimov
И если появилась более приоритетная вычислительная задача, которая при этом еще и к latency чувствительная, то ее диспатчить, заменяя менее приоритетную задачу
Это довольно сложно все хорошо настроить и как правило опять же лучше делать в своем пуле. Там и приоритет можно выстроить
источник

RI

Ruslan Ibragimov in Kotlin Community
Не помню почему, но приоритет у треда лучше не трогать
источник

VP

Vladimir Petrakovich in Kotlin Community
Alexander Nozik
Ну тут уже очень много деталей. Я бы сказал, что свой пул - это всегда безопасный вариант.
Да, согласен
источник

VP

Vladimir Petrakovich in Kotlin Community
Ruslan Ibragimov
Не помню почему, но приоритет у треда лучше не трогать
Может беда получиться, если высокоприоритетный тред будет ждать низкоприоритетный. А так почему бы и нет.
источник

RI

Ruslan Ibragimov in Kotlin Community
Не, там глубже было. Нужно флаг и запускаться как root, удачи это использовать)
источник

AM

Andrew Mikhaylov in Kotlin Community
Расставляйте по вычислительному коду yield-ы, планируйте вычислительные задачи на Default, блокирующий ввод-вывод на IO, и всё у вас будет хорошо. Упрётесь в бутылочное горлышко -- будете думать, что можно на отдельный экзекьютор унести для улучшения. Тут, собственно, и без корутин пришлось бы думать.
источник

IO

Iaroslav Orlov in Kotlin Community
у меня вообще нету IO, просто математика. всё на Default?
источник

RI

Ruslan Ibragimov in Kotlin Community
Andrew Mikhaylov
Расставляйте по вычислительному коду yield-ы, планируйте вычислительные задачи на Default, блокирующий ввод-вывод на IO, и всё у вас будет хорошо. Упрётесь в бутылочное горлышко -- будете думать, что можно на отдельный экзекьютор унести для улучшения. Тут, собственно, и без корутин пришлось бы думать.
+
источник

AM

Andrew Mikhaylov in Kotlin Community
Iaroslav Orlov
у меня вообще нету IO, просто математика. всё на Default?
Да, почему нет. Дефолтом пользуются все, кому нужно что-то считать.
источник

VP

Vladimir Petrakovich in Kotlin Community
Iaroslav Orlov
у меня вообще нету IO, просто математика. всё на Default?
Если это консольная утилита, можно смело всё гонять на Default. Если нет - надо думать.
источник

RI

Ruslan Ibragimov in Kotlin Community
источник

AM

Andrew Mikhaylov in Kotlin Community
Если вдруг вам критично считать, не толкаясь локтями с другими в пуле, тогда будет смысл свой экзекьютор заводить. Там вы будете толкаться с другими локтями в системном планировщике потоков.
источник

IO

Iaroslav Orlov in Kotlin Community
ну, я уже решил переписать с нуля вычисление (которое просто через Thread.start) на собственно корутины
источник

AM

Andrew Mikhaylov in Kotlin Community
Да, это как раз для работы с кодом, который умеет в кооперативные интеррапты, которые тут выше обсуждали. Я пришёл об этом сказать, но потом увидел по беседе, что речь не об этом в итоге)
источник

AN

Alexander Nozik in Kotlin Community
Iaroslav Orlov
у меня вообще нету IO, просто математика. всё на Default?
А что за математика?
источник

AN

Alexander Nozik in Kotlin Community
Мы кстати корутины гоняли на тяжелых вычислениях, все летает. Оверхед побольше, чем на Stream.parallel(), но не сильно
источник

IO

Iaroslav Orlov in Kotlin Community
я думаю, что у меня ParallelStream довольно плохо подходит
источник

AN

Alexander Nozik in Kotlin Community
Iaroslav Orlov
я думаю, что у меня ParallelStream довольно плохо подходит
Так что, если не секрет?
источник

AN

Alexander Nozik in Kotlin Community
Я юз кейсы коллекционирую
источник