Я ненавижу быть носителем плохих новостей, но я сомневаюсь, что вы сможете сократить количество времени, которое требуется для завершения дерева объектов. Примерно 10 лет назад я совместно разработал SQL Accord в VB6 - приложении, которое сравнивало базы данных. Таким образом, как вы можете себе представить, вы храните тысячи объектов в памяти (например, определения таблиц / представлений / sproc / и т.д.), чтобы иметь возможность их быстрого сравнения.
Первоначальный дизайн хранения этих предметов в коллекциях упал на пол из-за проблем, возникших у ОП. Виновником является схема сбора мусора в COM - она должна быть очищена в тот момент, когда вы установите для объекта значение Nothing / Null, а затем, скорее всего, потребуется дефрагментировать пространство памяти, что занимает время.
Моим решением (болезненным в то время) было преобразование всех объектов в структуры TYPE и преобразование коллекций в массивы типов. Затем я построил объекты менеджера для работы с массивами / типами / и т.д ...
Несмотря на то, что код пахнет, когда вы на него смотрите, я получил увеличение производительности в 10 раз. Зачем? Потому что структуры TYPE помещаются в стек, а объекты - в кучу, где избавиться от них гораздо дороже.