SASGIS - SAS.Планета
View Issue Details
0001689SAS.Планета[All Projects] Багpublic11-11-2012 13:3312-11-2012 14:47
Papazol 
vdemidov 
normalminorhave not tried
resolvedfixed 
WindowsXPProfessional SP3
110418 
131111131111 
0001689: Долго записывается последнее выделение
Началось с того, что у меня программа закрывалась по 4 минуты. Обнаружил, что файл SASPlanet.ini стал размером 477 кБ. Показалось, что это слишком, файл удалил, после чего программа стала закрываться практически мгновенно. Содержимое файла SASPlanet.ini я тогда не посмотрел.
Сегодня повторилась эта история, даже размер файла стал такой же, как раньше. Оказалось, очень много места занимает описание последнего выделения, которым у меня была граница области. Полигон, состоящий из нескольких сотен точек, программа вынуждена переписывать поточечно, хотя в базе меток уже все точки имеются. Надо подумать, что можно сделать, чтобы не переписывать заново все точки, если последнее выделение - полигон из базы. Созданное вручную выделение в 99,(9)% случаев не будет иметь такого большого количества точек.
Импортировать полигон, состоящий из большого количества точек (несколько сотен). Провести над ним любую операцию с выделенной областью (можно даже ничего не делать, просто вызвать окно и тут же закрыть). Закрыть программу. Засечь время до закрытия.
SASPlanet.ini, полигон
child of 0001650resolved vdemidov Зависает при сохранении настроек после выделения полигона сложной формы 
? Рязанская область.kmz (73,027) 11-11-2012 13:33
http://www.sasgis.org/mantis/file_download.php?file_id=1158&type=bug
Issue History
11-11-2012 13:33PapazolNew Issue
11-11-2012 13:33PapazolFile Added: Рязанская область.kmz
11-11-2012 13:36PapazolTag Attached: SASPlanet.ini
11-11-2012 13:36PapazolTag Attached: полигон
11-11-2012 18:07vasketsovNote Added: 0009890
11-11-2012 20:03PapazolNote Added: 0009892
12-11-2012 06:13TolikNote Added: 0009899
12-11-2012 06:15TolikRelationship addedrelated to 0001650
12-11-2012 06:16TolikStatusnew => acknowledged
12-11-2012 06:17TolikNote Edited: 0009899bug_revision_view_page.php?bugnote_id=9899#r4833
12-11-2012 07:41vdemidovRelationship replacedchild of 0001650
12-11-2012 10:53Dima2000Note Added: 0009906
12-11-2012 14:45vdemidovProduct Version.Nightly => 110418
12-11-2012 14:45vdemidovTarget Version => 131111
12-11-2012 14:46vdemidovNote Added: 0009907
12-11-2012 14:46vdemidovStatusacknowledged => resolved
12-11-2012 14:46vdemidovFixed in Version => 131111
12-11-2012 14:46vdemidovResolutionopen => fixed
12-11-2012 14:46vdemidovAssigned To => vdemidov

Notes
(0009890)
vasketsov   
11-11-2012 18:07   
>если последнее выделение - полигон из базы
Это может быть и выделение вокруг импортированного GPS-трека. В этом случае полигона нет. Впрочем и польза сохранения всех точек дискуссионна.
(0009892)
Papazol   
11-11-2012 20:03   
Можно было бы запрашивать сохранение этого последнего выделения. Если оно реально нужно именно в таком объёме, то можно и подождать, пока всё запишется. В противном случае не сохранять ничего. Или назначить максимальное количество точек выделения, при котором оно сохраняется без запроса, а если точек больше - с запросом.
(0009899)
Tolik   
12-11-2012 06:13   
(edited on: 12-11-2012 06:17)
Можно при числе точек полигона больше N при закрытии программы выводить вопрос: сохранять/удалять.
А если полигон простой, сохранять без вопросов, как сейчас.

То же самое при сохранении настроек 0001650

(0009906)
Dima2000   
12-11-2012 10:53   
Можно сделать лучше, сохранять последнее выделение не в SASPlanet.ini, а в отдельный файлик, в который писать не по точечно, а весь файл целиком, подготовив все строки предварительно в памяти (TStringList или подобном). Сам процесс записи файла достаточно быстр, тормозит имхо именно построчное (по каждой точке) обновление файла ini.
(0009907)
vdemidov   
12-11-2012 14:46   
Теперь последнее выделение хранится в отдельном hlg файле. Сохраняется и читается асинхронно.