Я обновил Google Maps v1 до v2 в своем приложении для Android.
И v2 был хорош, и так далее, НО один метод кажется самым медленным в моей жизни.
Projection proj = map.getProjection();
Point point = proj.toScreenLocation(example.m_geopoint);
toScreenLocation(...) настолько медленный, что приложение замедляется до непригодного для использования замедленного движения. Метод обновляется, может быть, 100 раз за кадр, но он отлично работает в Google Maps v1.
И когда я проверяю консоль Android, я вижу это:
10-06 13:53:04.460: D/dalvikvm(4889): GC_EXPLICIT freed 251K, 14% free 14622K/16839K, paused 3ms+5ms
10-06 13:53:05.859: D/dalvikvm(4889): GC_EXPLICIT freed 252K, 14% free 14622K/16839K, paused 2ms+5ms
10-06 13:53:07.222: D/dalvikvm(4889): GC_EXPLICIT freed 251K, 14% free 14622K/16839K, paused 3ms+6ms
...
Это сообщение появляется все время, пока вызывается метод.
И разница между v2 и v1 заключается в следующем:
pointOut = proj.toScreenLocation(geopointIn); // v2
projection.toPixels(geopointIn, pointOut); // v1
И v1 кажется более оптимизированным решением. Есть ли способ получить его быстрее? Это ошибка производительности?