Как стать автором
Обновить
0
0
eizenhorn91 @klimenkosergey

Senior Unity Developer

Отправить сообщение

Подтверждаю, так же за блочили при оплате картой из РФ, якобы fraud, открыл тикет, предоставил информацию, оставили блок в силе, в твиттере написал - ответили но так м не разблочили (вот переписка https://twitter.com/eizenhorn91/status/1501574568196165640?s=21)

Здесь проблема не самих джобов и бёрста скорее, а сама синхронизация MonoBehaviour трансформов + оверхед самих трансформов как таковых. В pure DOTS нет такой проблемы и вся работа с позицией\вращением на несколько порядков быстрее. Чтобы это работало производительно то и Data Layout должен быть производительным (==линейным, с минимумом cache misses) :) Тогда и раскрывается вся мощность Job System и Burst.
В профайлере можно увидеть как по воркер тредам делится если не в корне сцены и как запускается на одном треде если все трансформы в руте сцены. (скрины с редактора с оверхедом Safety\Collections Checks, просто чтобы показать порядок разницы)

50k 5 рутов
image

50k 1 рут
image
IJobParallelForTransform используется не совсем как надо. Он работает по принципу Root per thread соответственно если перемещаемые объекты не раскиданы по нескольким рут трансформам они будут обновляться на одном worker thread, а значит никакого параллелизма тут не будет. Раскидай их на группы (например 50к разбей на 5 групп по 10к — просто вложи их в пустой GO вместо того чтобы они были в корне сцены) что увеличит текущие цифры в ~xКОЛИЧЕСТВО_РУТОВ раз.
Да у Catlikecoding добротные туторы, по дисплейсменту у них инфу постигал.

Информация

В рейтинге
Не участвует
Откуда
Владимир, Владимирская обл., Россия
Дата рождения
Зарегистрирован
Активность