SASGIS - SAS.Планета
View Issue Details
0002462SAS.ПланетаРефакторингpublic16-07-2014 18:0524-10-2014 14:32
zed 
 
normalminorhave not tried
confirmedopen 
140505 
26xxxx 
0002462: В подсистеме sml меток оптимизировать чтение геометрии
Сейчас вся геометрия читается при загрузке программы. Нужно всё переделать таким образом, чтобы при старте загружалась только "лёгкая" информация - IMarkId.
Всю же остальную часть (геометрию и описание, которое тоже может быть увесистым) нужно загружать строго "по требованию".
Провёл небольшой замер производительности загрузки программы с отключёнными метками (включено скрыть все). Так вот, загрузка и парсинг меток в датасет заняла 4 сек, плюс столько же времени заняло получение/парсинг геометрии из датасета и ещё столько же времени ушло на создание векторного объекта, который пользуется внутрях SAS.

В качестве теста использовал полигоны таймзон (самые детализированные), которые были импортированы заранее. Всего около 28 тыс. простых полигонов.

Таким образом, загрузку меток можно увеличить в 2-3 раза.
No tags attached.
related to 0002463confirmed  В подсистеме sml меток оптимизировать поиск вхождения элементов в прямоугольник 
png perfcnt.png (4,933) 16-07-2014 18:05
https://bugtracker.sasgis.org/file_download.php?file_id=1746&type=bug
png
Issue History
16-07-2014 18:05zedNew Issue
16-07-2014 18:05zedFile Added: perfcnt.png
16-07-2014 18:40zedRelationship addedrelated to 0002463
16-07-2014 18:59vdemidovNote Added: 0014436
17-07-2014 07:07vdemidovNote Added: 0014441
17-07-2014 07:48zedNote Added: 0014442
17-07-2014 07:55vdemidovNote Added: 0014443
17-07-2014 12:57zedNote Added: 0014444
17-07-2014 13:12vdemidovNote Added: 0014445
24-10-2014 14:32vdemidovStatusnew => confirmed
24-10-2014 14:32vdemidovTarget Version => 26xxxx

Notes
(0014436)
vdemidov   
16-07-2014 18:59   
Не спорю. Я для того всю эту бодягу с IMarkId и поддерживаю, что бы можно было когда-нибудь это все дело оптимизировать.
(0014441)
vdemidov   
17-07-2014 07:07   
О. Кстати. Перед тем как что-то оптимизировать сделай тестик в папочке Benchmark. Только грузить саму базу не из файла, а предварительно в мемористрим прочитать на стартапе. А саму базу c полигонами таймзон положить в папку Benchmark\Data.
Ну или хотя бы базу закинь, что бы мне не ковыряться, раз уж у тебя она есть.
(0014442)
zed   
17-07-2014 07:48   
Там как бы 10 Мб в архиве. А в распакованном все 100.
(0014443)
vdemidov   
17-07-2014 07:55   
Мда. Многовато. Может тогда частично, на пару мегабайт? Или придумать как-то автоматически нагенерировать для теста данных с похожим распределением?
(0014444)
zed   
17-07-2014 12:57   
Да нагенерировать можно без проблем. Главное условие - несколько тысяч точек в полигонах. И чем больше точек будет, тем отчётливее будет тормозить на их парсинге.
(0014445)
vdemidov   
17-07-2014 13:12   
Было бы очень хорош таки сделать какой-то тест производительности перед оптимизациями. Что бы можно было сравнивать более менее реальные числа.