Найти в Дзене

Задачка: три паттерна корутин

// А IEnumerator Loop() { while (true) yield return new WaitForSeconds(1f); } // Б private WaitForSeconds _wait = new WaitForSeconds(1f); IEnumerator Loop() { while (true) yield return _wait; } // В IEnumerator Loop() { while (true) yield return null; } Какой из паттернов аллоцирует при каждой итерации цикла? Варианты: а) Все три — любой yield return создаёт нагрузку на GC, разница только в частоте - 🤷‍♂️ б) Только А — Б и В эквивалентны по аллокациям между итерациями - 🤷‍♀️ в) А и В — Б единственный который не аллоцирует повторно - 🤷 Ответ вечером 🙂 #задачка #unity #оптимизация

Задачка: три паттерна корутин

// А

IEnumerator Loop()

{

while (true)

yield return new WaitForSeconds(1f);

}

// Б

private WaitForSeconds _wait = new WaitForSeconds(1f);

IEnumerator Loop()

{

while (true)

yield return _wait;

}

// В

IEnumerator Loop()

{

while (true)

yield return null;

}

Какой из паттернов аллоцирует при каждой итерации цикла?

Варианты:

а) Все три — любой yield return создаёт нагрузку на GC, разница только в частоте - 🤷‍♂️

б) Только А — Б и В эквивалентны по аллокациям между итерациями - 🤷‍♀️

в) А и В — Б единственный который не аллоцирует повторно - 🤷

Ответ вечером 🙂

#задачка #unity #оптимизация