Zaktualizowałem Google Maps v1 do v2 w mojej aplikacji na Androida.Google Maps v2 Projection.toScreenLocation (...) bardzo powolny
I v2 było miłe i tak dalej, ALE jedna metoda wydaje się być najwolniejszą rzeczą w moim życiu.
Projection proj = map.getProjection();
Point point = proj.toScreenLocation(example.m_geopoint);
toScreenLocation (...) jest tak powolny, że aplikacja zwalnia do niezdolności do użycia slowmotion. Zaktualizowana metoda może być 100 razy na klatkę, ale to działa bardzo dobrze w Google Maps v1.
I kiedy sprawdzić w Android konsoli widzę tak:
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
...
Ten komunikat wychodzi cały czas, gdy wywoływana jest metoda.
A różnica między V2 i V1 jest taka:
pointOut = proj.toScreenLocation(geopointIn); // v2
projection.toPixels(geopointIn, pointOut); // v1
A v1 wydaje się być bardziej zoptymalizowane rozwiązanie. Czy jest jakiś sposób, aby go przyspieszyć? Czy to błąd wydajności?
To było dość dawno temu, ale obecnie mam problemy z wydajnością bardzo podobne do opisanych tutaj. Czy znalazłeś rozwiązanie tego w pewnym momencie? – saberrider