SASGIS - SAS.Планета
View Issue Details
0002651SAS.Планета[All Projects] Багpublic12-03-2015 12:1922-03-2015 07:33
aflexus 
vdemidov 
normalmajorrandom
resolvedfixed 
Windows7Ultimate
.Nightly 
150915150915 
0002651: Подвисание отображения карты при тормозах слоя заполнения
При включении карты заполнения для крупных масштабов (z17-18) и текущем зуме порядка 10-12 отображение, как карты заполнения, так и самих карт, подвисает до того момента, пока не будет посчитана карта заполнения для всего текущего вида/зума.
1) Включить "карту заполнения слоя" для z18
2) Перейти на зум 10-12 (программа начинает перебирать огромное кол-во файлов, чтобы создать карту и, по-сути, подвисает. На обычном винте точно, на SDD не знаю)
3) Перейти обратно на z18

Теперь наблюдаем следующую картину: пока вся карта заполнения предыдущего зума не будет посчитана, текущий не отображается. При переключении на другую карту, она начинает отрисовываться, только, если потянуть мышкой.
Видео: https://mega.co.nz/#!zgV2jSrI!2bocUpiAr7vNzn3X7eDvPqlpOhxNcvPVVzrRphoQs-8

На видео момент после включения и выключения карты заполнения для z18 при текущем зуме 12. На 20-й секунде я вновь пытаюсь ее включить, но, как видно, это ничего не меняет.
No tags attached.
parent of 0002655resolved vdemidov Добавить параметр INotifierOperation в методы тайлохранилищ 
parent of 0002656resolved vdemidov Усовершенствовать TBitmapTileMatrixChangeableComposite 
related to 0002648resolved vdemidov Замораживается картинка при переключении между картами 
? SASPlanet.Debug.elf (208,610) 13-03-2015 03:31
http://www.sasgis.org/mantis/file_download.php?file_id=1832&type=bug
7z SASPlanet.Debug.elf_20150313_055350.7z (11,235) 13-03-2015 03:54
http://www.sasgis.org/mantis/file_download.php?file_id=1833&type=bug
7z SASPlanet.7z (1,807,792) 21-03-2015 09:39
http://www.sasgis.org/mantis/file_download.php?file_id=1835&type=bug
Issue History
12-03-2015 12:19aflexusNew Issue
12-03-2015 12:37zedRelationship addedrelated to 0002648
12-03-2015 15:27vdemidovNote Added: 0015393
12-03-2015 15:34aflexusNote Added: 0015395
13-03-2015 03:31aflexusFile Added: SASPlanet.Debug.elf
13-03-2015 03:54aflexusFile Added: SASPlanet.Debug.elf_20150313_055350.7z
13-03-2015 04:05aflexusNote Added: 0015409
19-03-2015 08:10vdemidovNote Added: 0015434
19-03-2015 08:22aflexusNote Added: 0015435
19-03-2015 08:44vdemidovRelationship addedparent of 0002655
19-03-2015 09:17vdemidovRelationship addedparent of 0002656
19-03-2015 09:19vdemidovTarget Version => 150915
19-03-2015 09:19vdemidovSummaryПодвисание отображения карты заполнения => Подвисание отображения карты при тормозах слоя заполнения
19-03-2015 09:20vdemidovStatusnew => confirmed
20-03-2015 18:48vdemidovNote Added: 0015453
20-03-2015 18:48vdemidovStatusconfirmed => feedback
21-03-2015 00:02aflexusNote Added: 0015454
21-03-2015 00:02aflexusStatusfeedback => new
21-03-2015 00:02aflexusNote Edited: 0015454bug_revision_view_page.php?bugnote_id=15454#r6475
21-03-2015 08:22vdemidovNote Added: 0015455
21-03-2015 08:45vdemidovNote Added: 0015456
21-03-2015 08:47aflexusNote Added: 0015457
21-03-2015 08:49vdemidovStatusnew => feedback
21-03-2015 09:06zedNote Added: 0015458
21-03-2015 09:07zedNote Edited: 0015458bug_revision_view_page.php?bugnote_id=15458#r6477
21-03-2015 09:24zedNote Added: 0015459
21-03-2015 09:27vdemidovNote Added: 0015460
21-03-2015 09:29zedNote Added: 0015461
21-03-2015 09:31aflexusNote Added: 0015462
21-03-2015 09:31aflexusStatusfeedback => new
21-03-2015 09:34zedNote Added: 0015463
21-03-2015 09:36aflexusNote Edited: 0015462bug_revision_view_page.php?bugnote_id=15462#r6479
21-03-2015 09:39zedFile Added: SASPlanet.7z
21-03-2015 09:41zedNote Added: 0015464
21-03-2015 11:35aflexusNote Added: 0015465
21-03-2015 12:22zedNote Added: 0015466
21-03-2015 12:40aflexusNote Added: 0015467
21-03-2015 20:14vdemidovNote Added: 0015468
21-03-2015 20:14vdemidovStatusnew => feedback
21-03-2015 20:17vdemidovNote Added: 0015469
21-03-2015 21:18aflexusNote Added: 0015470
21-03-2015 21:18aflexusStatusfeedback => new
22-03-2015 07:33vdemidovStatusnew => resolved
22-03-2015 07:33vdemidovFixed in Version => 150915
22-03-2015 07:33vdemidovResolutionopen => fixed
22-03-2015 07:33vdemidovAssigned To => vdemidov

Notes
(0015393)
vdemidov   
12-03-2015 15:27   
Увы, но смотреть видео буду не раньше чем через неделю.
(0015395)
aflexus   
12-03-2015 15:34   
Не страшно.
(0015409)
aflexus   
13-03-2015 04:05   
Похоже, что проблема больше присуща кешу беркли. Если при работе с обычным (заполнение - z18, зум - z10-12), сместить фокус окна на другую территорию, то сас через некоторое время прекращает построение карты для той территории и начинает заниматься актуальной. Если же повторить то же самое для кеша беркли, то карта заполнения для предыдущего экрана зависает, а актуальная уже не отрисовывается, плюс подвисает отображение тайлов основной карты. При закрытии программы вылетает ошибка. Логи добавил.
(0015434)
vdemidov   
19-03-2015 08:10   
Судя по всему битый кэш беркли. А все остальное это уже следствия этой проблемы. Я конечно кое что поправлю, что бы эти глюки были не такими явными, но лечить нужно сам кэш.
(0015435)
aflexus   
19-03-2015 08:22   
Нет, кеш на предмет битости проверил сразу, как только проблема появилась. Еще и диск специально дефрагментировал со всем барахлом. Могу сказать, что до дефрагментации обычного кеша его поведение было очень схожим с поведением беркли. После же оной обычный кеш заработал шустрее, а беркли нет.
Я бы сказал, что кеш в самой бд беркли не "дефрагментирован" ;)
(0015453)
vdemidov   
20-03-2015 18:48   
Проверьте в следующей ночнушке. Карта заполнения все еще будет тормозить, но все остальное должно попустить.
(0015454)
aflexus   
21-03-2015 00:02   
Отрисовка карты заполнения как раз и начала работать более-менее. Вместо стал периодически появляться странный глюк с загрузкой тайлов: когда сдвигаешь карту на какое-то расстояние, по краям тайлы загружаются, а в центре остается некоторое пространство с незагруженными. При этом в трее видно, что что-то докачивается, но ничего не происходит. И лишь под конец отображения загрузки в трее прорисовываются и остальные тайлы. Это можно глянуть на видео: https://mega.co.nz/#!ygNBRDbD!QH2dHwSrwkSEnAWvOLbhOKrI2GhO_8TgHokp7qX4Q18

(0015455)
vdemidov   
21-03-2015 08:22   
Не, это уже глюки тайлохранилища беркли. Переключите на файловое и они пропадут.
(0015456)
vdemidov   
21-03-2015 08:45   
Хотя нет. Еще одну фигню нашел. В следующей ночнушке проверите.
(0015457)
aflexus   
21-03-2015 08:47   
Нет, на обычном файловом поведение аналогичное: планета что-то загружает (судя по трею) и лишь в конце загрузки отображает эти тайлы. Причем, иногда даже карта заполнения (если раньше тайлов не было) заполняется быстрее, а лишь потом отрисовываются сами картинки.
(0015458)
zed   
21-03-2015 09:06   
(edited on: 21-03-2015 09:07)
> планета что-то загружает
Загружает известно что: карту + слои. Если у вас включёно несколько слоёв, плюс идёт загрузка большой территории за границами экрана, плюс включена анимация карты (движение по инерции), то вполне возможно такое поведение как на видео. Попробуйте отключить движение по инерции, для начала.

(0015459)
zed   
21-03-2015 09:24   
А нет, инерция тут ни при чём. Действительно, притормаживает отрисовка, в случае если включен слой с проекцией, отличной от проекции основной карты. Легко воспроизводится на связке спутник гугл + гибрид яндекса.
(0015460)
vdemidov   
21-03-2015 09:27   
Это ты проверял с последним моим изменением?
(0015461)
zed   
21-03-2015 09:29   
Да, rev.8584.
(0015462)
aflexus   
21-03-2015 09:31   
(edited on: 21-03-2015 09:36)
Нашел. Слои особо не влияют на поведение, как и движение по инерции. Все дело в загрузке территории за границами, хотя у меня и стояло 3, вроде как по-умолчанию. Поставил 16 и теперь явно имеем проблему. По-ощущениям, сас пропускает некоторые тайлы (не понятно почему) из основного экрана и переходит к загрузке территории за. И пока всю территорию за границами экрана не отрисует, эти неудавшиеся не пробует перекачать. Если чуточку "потянуть" карту они в большинстве случаев догружаются.

Может быть как-то приоритет для видимых тайлов повысить? Или как-то проверять, если тайл на сервере есть, но почему-то не загрузился, пробывать загрузить еще раз, прежде чем переходить к загрузке тайлов за границами экрана?

Кстати, что значит это число в загрузке тайлов за границами?

zed, по-моему прекрасно повторяется и без доп.слоев с различными проекциями. Легко воспроизводится на обычной карте того же гугла, но с выкрученной загрузкой за границами.

(0015463)
zed   
21-03-2015 09:34   
На быстром интернете этот глюк трудно словить. Но если включить кэш Беркли, то он становится более заметен. Только это всё уже по-моему к карте заполнения и данному тикету отношения не имеет.
(0015464)
zed   
21-03-2015 09:41   
aflexus
Тестируйте на приаттаченном билде, а то вчерашняя ночнушка уже не актуальна в этом плане.
(0015465)
aflexus   
21-03-2015 11:35   
На приаттаченном билде то же самое. И да, на беркли это более заметно. Баг проявляется только при включенном "загрузка за границами экрана". И чем больше стоит число, тем очевиднее. Смотрите видео: https://mega.co.nz/#!m40V3QzS!ooT5eKtMwRJVe09BamY6dIMiLJ7sEJLl5Wu8fGpf-JU
В данном случае, стоит 16. Вначале ролика видно эти недогруженные тайлы. Чуть подвинул карту и они догрузились. А во втором случае, видно, что будет, если карту не двигать - пока все остальное недогрузится, эти не отрисуются.
(0015466)
zed   
21-03-2015 12:22   
А теперь отключите движение по инерции.
(0015467)
aflexus   
21-03-2015 12:40   
Отключил - аналогично. Видео делать не буду, поведение то же самое.

Не проявляется только тогда, когда отключена "загрузка за границами"
(0015468)
vdemidov   
21-03-2015 20:14   
Тоесть, вся область по которой движитесь есть в кэше, включена загрузка за границами. Двигаете карту и долго появляются тайлы? Так?
(0015469)
vdemidov   
21-03-2015 20:17   
Просто в вашем прошлом видео тайлы грузятся из сети. Даже по карте заполнения видно. А это уже совсем другой вопрос и отдельный инцидент.
(0015470)
aflexus   
21-03-2015 21:18   
Все тайлы грузятся из сети. Из тайлохранилища грузятся мгновенно :) Даже из беркли.

Хорошо, тогда другой инцидент, но, думаю, лучше не стоит из-за этой ерунды на экстремальных настройках новый тикет создавать.

Спасибо :)