Я запускаю симуляции, которые включают создание дерева.
Мое дерево имеет коэффициент ветвления от 2/3 до 7/8.
Каждый раз, когда мне нужно расширить его, я выделяю массив для ребенка.
Довольно часто я делаю одну ветку новым деревом (устанавливая дочерний элемент корня в качестве корня), поэтому остальная часть моего дерева становится мусором.
Мне интересно, лучше ли сборщику мусора выполнять свою работу (я «предлагаю» ему начать сбор с помощью System.gc (), когда я изменяю корень дерева) или реализую свой собственный пул для TreeNodes, и когда я меняю корень, перезаписываю все ненужные узлы.
Ответ можно прочитать так: является ли сборщик мусора для Android очень оптимизированным или предпочтительнее ограничения создания / уничтожения объекта, даже если это довольно затратно? (Мне нужно пройти по всему дереву и добавить каждое из них. бесполезный узел в стек для моего пула)
Я читал, что android GC не настолько "развит" (он в основном работает, когда у вас мало памяти.) Кроме того, я не знаю, позволит ли удаление каждой ссылки на корень дерева, чтобы сборщик мусора gc собирал все дерево за один проход, иначе он получит только узел, потом потомки этого узла на следующем проходе и т. д.