Пример распределения потоков по двум потокам
Предварительные условия
В примерах используются отчеты об использовании памяти, которые Unity записывает в журнал при закрытии Проигрывателя или Unity Editor. Для создания этих отчетов используйте аргумент командной строки -log-memory-performance-stats. Чтобы найти файлы журнала проекта, следуйте инструкциям на странице файлов журнала.
Настройка размера блока
Вы можете настроить размеры блоков двух динамических распределителей стека:
Пример отчета об использовании
Отчет об использовании содержит информацию по всем трем частям распределителя. Например:
[ALLOC_DEFAULT] Dual Thread Allocator
Peak main deferred allocation count 135
[ALLOC_BUCKET]
Large Block size 4.0 MB
Used Block count 1
Peak Allocated bytes 3.3 MB
[ALLOC_DEFAULT_MAIN]
Peak usage frame count: [16.0 MB-32.0 MB]: 8283 frames, [32.0 MB-64.0 MB]: 1 frames
Requested Block Size 16.0 MB
Peak Block count 2
Peak Allocated memory 53.3 MB
Peak Large allocation bytes 40.2 MB
[ALLOC_DEFAULT_THREAD]
Peak usage frame count: [64.0 MB-128.0 MB]: 8284 frames
Requested Block Size 16.0 MB
Peak Block count 2
Peak Allocated memory 78.3 MB
Peak Large allocation bytes 47.3 MB
Примечание: значение Пиковое число отложенных выделений в основном потоке — это количество элементов в очереди на удаление. Основной поток должен удалять все созданные им выделения памяти. Если выделение удаляет другой поток, Unity добавляет его в очередь, где оно ожидает удаления основным потоком. После этого оно учитывается как отложенное выделение памяти.