code

Profiler Markers

Все мы знаем, что в Unity Profiler можно включить Deep и посмотреть что там вообще происходит в ваших методах.

Memory Allocator

Как устроен MemoryAllocator в ME.ECS/ME.BECS

Interview

🥕Из собеса

Job Producer

После выхода Unity Jobs не сразу стало возможно создавать свои джобы, просто апи было не в публичном доступе. Сейчас же это возможно и давайте разберемся как это делать.

GC Allocations

Немного про аллокации и кэш.

Inline

Существует возможность подсказать компилятору что метод должен быть заинлайнен, для этого нужно добавить аттрибут  System.Runtime.CompilerServices.MethodImplAttribute(MethodImplOptions.AggressiveInlining). Я обычно пишу гораздо короче:

Jobs

Существует метод JobHandle.ScheduleBatchedJobs. Он позволяет "отправить" новую джобу на обработку. Если его не вызвать - джоба будет отправлена "когда-нибудь позже". Но не стоит его писать после шедулинга каждой джобы, т.к. это по сути форсированная отправка из локальной очереди в поток, а это занимает время.

Long numbers

Записывайте большие числа читаемо.

code-style

Используйте блоки кода вида