Size: a a a

pro.graphon (and gamedev)

2020 April 24

MS

Mikola Summer Duck in pro.graphon (and gamedev)
disba1ancer
не обязательно, мотжно использовать и спинлоки
Нельзя
источник

d

disba1ancer in pro.graphon (and gamedev)
можно раздавать таски так чтобы они не гонялись за ресурсами, нужно просто включить голову
источник

d

disba1ancer in pro.graphon (and gamedev)
Mikola Summer Duck
Нельзя
почему?
источник

MS

Mikola Summer Duck in pro.graphon (and gamedev)
Не ну я могу представить как можно уменьшить количество дёрганий лока, но полностью исключить не получится ибо корнеркейзы.
источник

MS

Mikola Summer Duck in pro.graphon (and gamedev)
disba1ancer
почему?
Ну это стреляние себе в ногу из дробовика с рикошетом в лицо. Планировщик ОС ничего не знает про твои спинлоки.
источник

d

disba1ancer in pro.graphon (and gamedev)
Mikola Summer Duck
Не ну я могу представить как можно уменьшить количество дёрганий лока, но полностью исключить не получится ибо корнеркейзы.
полностью и не надо, тут надо смотреть будут ли эти локи узким местом
источник

MS

Mikola Summer Duck in pro.graphon (and gamedev)
Ну Иоан сказал в ядро не стучит, я прочитал это как „совсем не стучит“. И удивился.
источник

d

disba1ancer in pro.graphon (and gamedev)
Mikola Summer Duck
Ну это стреляние себе в ногу из дробовика с рикошетом в лицо. Планировщик ОС ничего не знает про твои спинлоки.
а не надо длительные операции с блокировкам по потокам рассовывать
источник

d

disba1ancer in pro.graphon (and gamedev)
или надо сделать так чтобы они легко параллелились
источник

MS

Mikola Summer Duck in pro.graphon (and gamedev)
disba1ancer
а не надо длительные операции с блокировкам по потокам рассовывать
А кто знает насколько они длительные. Вот ты залочил спинлок на кратковременную операцию, а тут бац пришёл системный интеррапт потому что у тебя закончился таймслайс.
источник

d

disba1ancer in pro.graphon (and gamedev)
Mikola Summer Duck
А кто знает насколько они длительные. Вот ты залочил спинлок на кратковременную операцию, а тут бац пришёл системный интеррапт потому что у тебя закончился таймслайс.
маловероятно хоть и возможно, да и по нормальному поток не долго будет стоять, только в том случае если постороннее приложение нагружает процессор
источник

d

disba1ancer in pro.graphon (and gamedev)
ну или левый поток внутри твоей же программы, но такого быть не должно, по крайней мере по неясным причинам
источник

MS

Mikola Summer Duck in pro.graphon (and gamedev)
disba1ancer
маловероятно хоть и возможно, да и по нормальному поток не долго будет стоять, только в том случае если постороннее приложение нагружает процессор
Маловероятно и возможно — значит сложноотслеживаемые спуриоус просадки в латенси.
источник

d

disba1ancer in pro.graphon (and gamedev)
Mikola Summer Duck
Маловероятно и возможно — значит сложноотслеживаемые спуриоус просадки в латенси.
у нас не real-time os чтобы это исключить
источник

MS

Mikola Summer Duck in pro.graphon (and gamedev)
disba1ancer
у нас не real-time os чтобы это исключить
У нас не real-time os, и поэтому достаточно использовать мутексы и не выпендриваться.
источник

d

disba1ancer in pro.graphon (and gamedev)
Mikola Summer Duck
У нас не real-time os, и поэтому достаточно использовать мутексы и не выпендриваться.
хз по моему одна смена контекста также дорога как и постучать в ядро за мьютексом
источник

MS

Mikola Summer Duck in pro.graphon (and gamedev)
Ну и кстати современные мутексы часто даже не проваливаются в ядро в общем случае.
источник

d

disba1ancer in pro.graphon (and gamedev)
@Ioann_V ты что скажешь?
источник

d

disba1ancer in pro.graphon (and gamedev)
Mikola Summer Duck
Ну и кстати современные мутексы часто даже не проваливаются в ядро в общем случае.
так и как же они тогда борются с тем что ос может взять и переключить неожиданно контекст
источник

d

disba1ancer in pro.graphon (and gamedev)
?
источник