QualitySettings.asyncUploadBufferSize
Declaration
public static int asyncUploadBufferSize;Описание
Задает размер кольцевого буфера, используемого для асинхронной загрузки текстуры и данных сетки.
Свойство asyncUploadBufferSize определяет размер кольцевого буфера, используемого для асинхронной загрузки текстуры и сетки в Unity. Минимальное значение для этого свойства — 2 MB, а максимальное значение — 2047 MB.
Это свойство помогает оптимизировать загрузку сцен с большим количеством ассетов или с большим количеством небольших ассетов. Если буфер слишком маленький, чтобы вместить самый большой ассет, загружаемый в данный момент, Unity автоматически изменяет размер буфера, чтобы он вписывался. Однако изменение размера буфера может потреблять дополнительные системные ресурсы и вызвать перегрузку памяти.
Чтобы предотвратить изменение размера буфера, установите значение, соответствующее размеру самой большой текстуры или сетки в Scene. Если вы сталкиваетесь с чрезмерным использованием памяти или проблемами производительности, рассмотрите возможность уменьшения этого значения для экономии ресурсов. В качестве альтернативы вы можете отключить asyncUploadPersistentBuffer, хотя это может привести к фрагментации памяти и дальнейшим осложнениям. Будьте осторожны при отключении постоянных буферов, так как фрагментированная память может сделать будущие выделения памяти непредсказуемыми и менее эффективными.
using UnityEngine;
public class StartupExampleScript : MonoBehaviour { void Start() { // Set ring buffer size to 16 MB. QualitySettings.asyncUploadBufferSize = 16; } }
Конвейер асинхронной загрузки позволяет Unity выполнять асинхронную загрузку текстур и данных меши в поток рендеринга. Этот конвейер обеспечивает точное управление использованием памяти и механизмом временной загрузки, гарантируя, что загрузки ассетов не блокируют основной поток и эффективно управляются во время выполнения. Чтобы минимизировать выделение памяти, конвейер повторно использует кольцевой буфер для обработки текстур и данных меши. Размер этого кольцевого буфера можно настроить с помощью свойства asyncUploadBufferSize.
Эта функция полезна для оптимизации сцен с частой динамической загрузкой ассетов или сред с большим объемом памяти, таких как игры с открытым миром или приложения с большими текстурами и мешами. Разрешая асинхронную загрузку данных, Unity обеспечивает плавную производительность и предотвращает внезапные пики в использовании памяти или времени кадров во время интенсивных операций загрузки.
Конвейер асинхронной загрузки минимизирует выделения, за исключением неизбежных выделений, выполняемых самим графическим драйвером. Он предназначен для эффективного повторного использования существующей памяти, снижения фрагментации и накладных расходов.
Дополнительные ресурсы: Загрузка текстур и данных сетки.