GarbageCollector.CollectIncremental
Declaration
public static bool CollectIncremental(ulong nanoseconds);Параметры
| Параметр | Описание |
|---|---|
| наносекунда | Максимальное время в наносекундах для операции сбора мусора. Если установлено значение 0 (по умолчанию), сбор мусора не выполняется. |
Возвращаемое значение
логическое Возвращает true, если при возвращении метода остается дополнительная работа по сбору мусора, и false, если сбор мусора завершен. Также возвращает false, если инкрементальный сбор мусора не включен или не поддерживается на текущей платформе.
Описание
Выполнять по требованию приростную сборку мусора в течение максимального времени, указанного параметром nanoseconds.
Если включена инкрементальная сборка мусора, CollectIncremental запускает инкрементальный сборщик мусора не более чем на указанное число наносекунд. Метод завершается, когда истекает указанное время либо когда сборщику мусора больше нечего обрабатывать. Учтите, что сборщик мусора использует таймер базовой платформы, разрешение которого может составлять всего несколько микросекунд. Поэтому изменение значения на несколько наносекунд может ни на что не повлиять.
Используйте этот метод, когда известно, что некоторое время придётся ждать какого-либо события, и вы хотите дать сборщику мусора поработать в течение этого времени.
Если инкрементальная сборка мусора не включена, метод ничего не делает и возвращает false. Включите инкрементальную сборку мусора для проекта в PlayerSettings. Проверить, включена ли она, можно с помощью GarbageCollector.isIncremental.
Если значение параметра nanoseconds не указано, используется значение по умолчанию 0, и инкрементальная сборка мусора не выполняется.
Примечание: параметр nanoseconds задаёт максимальное суммарное время инкрементальной сборки мусора по запросу. Не путайте его с GarbageCollector.incrementalTimeSliceNanoseconds, который задаёт целевую длительность отдельных этапов, на которые разделена инкрементальная сборка. Например, если GarbageCollector.incrementalTimeSliceNanoseconds имеет значение по умолчанию 3000000 наносекунд (3 мс) и вызывается GarbageCollector.CollectIncremental(10000000), сборщик мусора может работать не более 10 мс. За доступное время он сможет выполнить не более трёх (а скорее всего, не более двух) этапов инкрементальной сборки длительностью 3 мс каждый.
Дополнительные ресурсы: incrementalTimeSliceNanoseconds.