QualitySettings.asyncUploadPersistentBuffer
Declaration
public static bool asyncUploadPersistentBuffer;Описание
Этот флаг определяет, сохраняет ли Unity выделение кольцевого буфера, используемого для асинхронной загрузки текстуры и сетки после завершения всех операций загрузки.
Когда это свойство установлено на true, память кольцевого буфера остается выделенной, что позволяет Unity повторно использовать ее для будущих загрузк без дополнительной нагрузки на производительность. Значение по умолчанию — true. Это свойство полезно для оптимизации производительности в сценах с частыми или большими асинхронными операциями загрузки, избегая повторных выделений и снятий выделений памяти. Однако, если использование памяти вызывает озабоченность, вы можете уменьшить использование памяти в режиме выполнения, установив это свойство на false. Таким образом, память кольцевого буфера высвобождается после завершения операций загрузки, но это может привести к фрагментации памяти. Чрезмерная фрагментация может негативно повлиять на эффективность выделения памяти и, следовательно, на производительность в режиме выполнения.
using UnityEngine; public class StartupExampleScript : MonoBehaviour { void Start() { // The upload buffer will be deallocated when all uploads are complete. QualitySettings.asyncUploadPersistentBuffer = false; } }
Конвейер асинхронной загрузки позволяет Unity выполнять асинхронную загрузку текстур и данных меши в поток рендеринга. Этот конвейер обеспечивает точное управление использованием памяти и механизмом временной загрузки, гарантируя, что загрузки ассетов не блокируют основной поток и эффективно управляются во время выполнения. Чтобы минимизировать выделение памяти, конвейер повторно использует кольцевой буфер для обработки текстур и данных меши. Размер этого кольцевого буфера можно настроить с помощью свойства asyncUploadBufferSize.
Эта функция полезна для оптимизации сцен с частой динамической загрузкой ассетов или сред с большим объемом памяти, таких как игры с открытым миром или приложения с большими текстурами и мешами. Разрешая асинхронную загрузку данных, Unity обеспечивает плавную производительность и предотвращает внезапные пики в использовании памяти или времени кадров во время интенсивных операций загрузки.
Конвейер асинхронной загрузки минимизирует выделения, за исключением неизбежных выделений, выполняемых самим графическим драйвером. Он предназначен для эффективного повторного использования существующей памяти, снижения фрагментации и накладных расходов.
Дополнительные ресурсы: Загрузка текстур и данных сетки.