yandex / mapkit-android-demo

MapKit Android demo
Other
121 stars 59 forks source link

Тормозит отрисовка полигонов на 64 битной версии библиотеки #156

Closed AlexShilkin closed 4 years ago

AlexShilkin commented 4 years ago

Тестовые девайсы: Nokia 6.1, Android 10 Huawei ANE LX1, Android 9

Условия: Отрисовываю полигоны (правильные n-угольники). При расчете координат используются методы worldToXY, worldToXY Wgs84Mercator. Создаются несколько полигонов yandexMap.mapObjects.addPolygon(polygon).

При использование armeabi-v7a на устройствах быстро отрисовываются полигоны, если использовать arm64-v8a отрисовка замедляется примерно в 8-10 раз.

Подскажите пожалуйста в чем может быть причина?

eberkovich commented 4 years ago

Скажите пожалуйста, зачем для расчета координат полигонов Вы используете методы worldToXY? Что значит замедляется отрисовка в 8-10 раз и как Вы это измеряете? Сколько точек в полигонах?

AlexShilkin commented 4 years ago

Мне нужно на карте нарисовать правильный многоугольник, если использовать обычные координаты для многоугольника и потом добавлять полигон на карту то он вытягивается. Поэтому я рисую многоугольник в плоских координатах а потом преобразую их в мировые. worldToXY используется чтобы преобразовать координату центра в плоские координаты.

Замерял время отрисовки простыми логами.

println(startTime) yandexMap.mapObjects.addPolygon(polygon) println(currentTime-startTime)

Также замерял время в профайлере. Порядок времени для метода addPolygon оставался примерно такой же.

В полигоне пробовал разное количество точек от 5 до 16. Время не очень сильно отличалось.

eberkovich commented 4 years ago

А какие абсолютные значения времени исполнения addPolygon?

AlexShilkin commented 4 years ago

Они отличаются: Время в миллисекундах 1341 1013 788 487 978 314

При первом вызове addPolygon время всегда максимальное.

AlexShilkin commented 4 years ago

Используется версия библиотеки 3.3.1, в 3.4.0 написано "Улучшена производительность на arm64". В этом наверное проблема? Нужно обновить и посмотреть как будет работать.

AlexShilkin commented 4 years ago

Проблема заключалась в версии 3.3.1. При обновлении на версию 3.4.0 проблем с отрисовкой не наблюдается.