Size: a a a

2021 March 14

ΑZ

Αλεχ Zhukovsky in rust_offtopic
Мимо Проходящий
ну ок, допустим мьютексы асинхронные. А как на счёт cpu bound вычислений?
а что с ними? Сделал спаун на cpu bound шедулере и он там крутить будет
источник

МП

Мимо Проходящий... in rust_offtopic
Αλεχ Zhukovsky
а что с ними? Сделал спаун на cpu bound шедулере и он там крутить будет
а что такое "цпу банд шедулер"?
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
ну тот же шедулер просто с другими приоритетами.

А вообще если у тебя 8 ядер цпу и все заняты то никакой шедулер магии не сделает)
источник

МП

Мимо Проходящий... in rust_offtopic
Αλεχ Zhukovsky
Кстати, вспоминая статью "Какого цвета ваша функция", в го тоже функции разных цветов. Вот эта — синяя: func loadComments(node intTree) commentTree
А вот эта — красная: func loadComments(resNode *commentTree, node intTree, wg *sync.WaitGroup)
у меня все функции синие,  не предаю аргументом WaitGroup. Это такая штука, которую делают полем в структуре данных, а не параметром функции как Context
источник

MB

Mikail Bagishov in rust_offtopic
Ну вот например rayon есть, по идее он как раз для cpu-bound
https://docs.rs/rayon/1.5.0/rayon/fn.spawn.html
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
Мимо Проходящий
у меня все функции синие,  не предаю аргументом WaitGroup. Это такая штука, которую делают полем в структуре данных, а не параметром функции как Context
ну у тебя получается инфа о асинхронности протекает в структуры данных которые ваще не должны про это знать
источник

МП

Мимо Проходящий... in rust_offtopic
Αλεχ Zhukovsky
ну тот же шедулер просто с другими приоритетами.

А вообще если у тебя 8 ядер цпу и все заняты то никакой шедулер магии не сделает)
ну а если у меня это пиково происходит, то в голанге (поскольку всё асинхронное), хотя бы реквест не пожрёт весь камень)
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
во всяких жабах это считается нарушением SRP и говнокод
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
Мимо Проходящий
ну а если у меня это пиково происходит, то в голанге (поскольку всё асинхронное), хотя бы реквест не пожрёт весь камень)
ну суспендить чужие потоки просто так в расте нельзя если ты об этом , да
источник

МП

Мимо Проходящий... in rust_offtopic
да, я об этом) Это не раста проблема - это в целом проблема асинхронщины с асинк эвейтами
источник

MB

Mikail Bagishov in rust_offtopic
Ну, саспендить потоки можно, а убивать нельзя
источник

MB

Mikail Bagishov in rust_offtopic
засаспендить или отменить таску можно с точностью до длительности poll()
источник

МП

Мимо Проходящий... in rust_offtopic
естесвенно, потоки же нагружают  системный планировщик, ибо не зелёные
источник

MB

Mikail Bagishov in rust_offtopic
так же как и гошные
источник

MB

Mikail Bagishov in rust_offtopic
токио и го спавнят потоки примерно в одних и тех же случаях
источник

МП

Мимо Проходящий... in rust_offtopic
не понял. В каком смысле гошные потоки не зелёные и грузят системный планировщик?
источник

MB

Mikail Bagishov in rust_offtopic
Мимо Проходящий
не понял. В каком смысле гошные потоки не зелёные и грузят системный планировщик?
Го спавнит $GOMAXPROCS тредов, которые нифига не зеленые и грузят планировщик
источник

MB

Mikail Bagishov in rust_offtopic
и токио спавнит core_threads тредов, которые нифига не зеленые и грузят планировщик
источник

MB

Mikail Bagishov in rust_offtopic
Для блокирующий операций го спавнит системный тред, который блокается на сисколле. И с токио будет то же самое
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
Mikail Bagishov
и токио спавнит core_threads тредов, которые нифига не зеленые и грузят планировщик
Речь о том что тредпул вряд ли менеджит квагты времени выполнения задач
источник