yandex / mapkit-ios-demo

MapKit iOS demo
Other
85 stars 27 forks source link

Как исправить данные предупреждения в консоли? #45

Closed paulseagul closed 5 years ago

paulseagul commented 5 years ago

Здравствуйте! Периодически в проекте выводятся данные логи:

2019-07-30 15:34:39.880005+0500 Client[21515:1003068] yandex::maps::mapkit::textures::Atlas::addTexture <warn>: Atlas: LayersAtlas. Page: 3 created. That could seriously decrease rendering speed
2019-07-30 15:34:42.462635+0500 Client[21515:1003068] yandex::maps::mapkit::textures::Atlas::addTexture <warn>: Atlas: LayersAtlas. Page: 4 created. That could seriously decrease rendering speed
2019-07-30 15:34:45.103704+0500 Client[21515:1003072] yandex::maps::mapkit::textures::Atlas::addTexture <warn>: Atlas: LayersAtlas. Page: 5 created. That could seriously decrease rendering speed

Не могу понять, о чем идет речь. Что за страницы и почему это серьезно уменьшает скорость рендеринга?

eberkovich commented 5 years ago

Здравствуйте, это предупреждение для разработчиков mapkit, на него можно не обращать внимание.

paulseagul commented 5 years ago

Здравствуйте, это предупреждение для разработчиков mapkit, на него можно не обращать внимание.

Благодарю за ответ. Есть флаг или что-то ещё для отключения предупреждений? (именно в фреймворке, без фильтра в консоли и т.п. ?)

eberkovich commented 5 years ago

Да, для настройки уровня логирования нужно в Info.plist прописать ключ "yandex.maps.runtime.logging.Level" со значением "Error". Значение по умолчанию "Warning".

cream-cheeze commented 3 years ago

@eberkovich а о чём оно предупреждает, в чём причина?

eberkovich commented 3 years ago

предупреждает о том, что в атласе > 1 страницы, что увеличивает количество draw call.

cream-cheeze commented 3 years ago

А какова природа появления новых страниц в этом атласе, какие действия приводят к созданию новых страниц? Хочется понимать, чтобы избегать неоптимальных решений. Я постоянно вижу эти сообщения - приложение просто загружает карту, показывает пару-тройку точек с композитными иконками, ещё используются кластеры.

eberkovich commented 3 years ago

LayerAtlas, который упоминается здесь, хранит иконки объектов в слое подложки карты, повлиять на его содержимое нельзя.

Вот если в логе будет такое же сообщение, но про MapObjectAtlas, тогда это говорит о том, что приложение загрузило на карту много иконок, тогда действительно может иметь смысл подумать об оптимизации, как минимум убедиться, что одна и та же иконка не загружается несколько раз: в том смысле, что если на карту добавляется 100 одинаковых PlacemarkMapObject, все они должны использовать один и тот же UIImage.