Я не могу ответить на этот вопрос, так как поведение кода непредсказуемо. Сам проект написан отвратительно: копипаста, куча неиспользуемых функций, отсутствие комментариев, дикие названия переменных.
В общем, я сделал, что 10 объектов(т.е. на самом деле это 40 объектов с кучей узлов) отображаются быстро(до этого даже 5 тормозило + постоянно перерисовывало, а объектов 20 отрисовывало минуту). Думаю этого будет достаточно.
Мне подсказали отличный способ борьбы с внешним проявлением тормозов.
При перемещении по карте у меня часть видимых на предыдущем экстенте карты тайлов не перерисовывается. Можно ли в принципе сделать так, чтобы и часть видимой векторной графики с предыдущего шага не перерисовывалась?
Решение: убрать обновление графики по следующим событиям: изменение экстента; по всем событиям, связанными с мышкой. Т.е. оставить обновление только: при выделении/снятии выделения с объекта на карте(в этом случае обновлять только выделенную векторную графику) и при добавлении/удалении объектов на карту.
при среднем объеме данных на карте скорость отображения выросла раз в 30, при выделении/снятии выделения с объектов тормозов нет совсем; при перемещении карты по территории, где нет векторной графики тормозов нет совсем