Во время разбора исходного кода библиотеки A* я спросил у Олега, почему массив из объектов вынесен в качестве свойства класса, хотя массив используется только в рамках одного-двух методов. Можно же было инициализировать его локально. Олег пояснение на этот счет. Нельзя допускать перегрузку в работе Garbage collector. Перегрузка приводит к  кратковременным, но периодическим фризам(торможениям). ### Как происходит перегрузка Garbage collector Вызов Garbage collector блокирует все потоки во время своей работы. Нельзя провоцировать работать Garbage collector долгое время. ##### Первая причина долгой работы Чем больше ссылочных объектов в heap (в куче), тем дольше будет работать Garbage collector. ##### Вторая причина Объекты в heap располагаются неупорядоченно. Частый вызов Garbage collector может сильнее [[Фрагментация и Дефрагментация памяти|фрагментировать]] память. Если память сильно фрагментирована, то Garbage collector переместит объекты в один непрерывный блок памяти ([[Фрагментация и Дефрагментация памяти|дефрагментация]]). Это может занять долгое время. ### Как избежать перегрузки Garbage collector Нужно избегать частую аллокацию ссылочных типов (классов) в heap (в кучу), чтобы Garbage collector не вызывался часто и надолго, тем самым не вызывал фризы. На практике избежать можно, не аллоцируя объекты в update и его производных вызовах. Это не значит, что всеми способами нужно избегать вызов GC. Если количество экземпляров, которое ему предстоит удалить, невелико, то блокировка потоков будет  незаметна для игрока. StringBuilder ### Полезная информация Garbage collector содержится во всех языках программирования с [automatic memory management](https://www.google.com/search?q=programming+languages+with+automatic+memory+management&newwindow=1&ei=R7ZvY_2VH4eRsAf2s4cg&oq=automatic+memory+management+programming+languages&gs_lcp=Cgxnd3Mtd2l6LXNlcnAQAxgAMgYIABAIEB46CggAEEcQ1gQQsAM6DQgAEOQCENYEELADGAE6CQgAEIAEEA0QEzoKCAAQCBAHEB4QEzoKCAAQCBAeEA0QEzoICAAQCBAHEB5KBAhNGAFKBAhBGABKBAhGGAFQrwxYvStgw1ZoAXABeACAAfUBiAGoEJIBBTAuNC42mAEAoAEByAENwAEB2gEGCAEQARgJ&sclient=gws-wiz-serp). вызывается автоматически, но можно вызвать принудительно, написав GC.Collect();.  Garbage collector работает только с классами (ссылочные объекты), со структурами не работает.