SASGIS - SAS.Планета |
View Issue Details |
|
ID | Project | Category | View Status | Date Submitted | Last Update |
0001075 | SAS.Планета | [All Projects] Баг | public | 22-12-2011 06:32 | 10-10-2012 11:49 |
|
Reporter | Tolik | |
Assigned To | vdemidov | |
Priority | normal | Severity | crash | Reproducibility | always |
Status | closed | Resolution | fixed | |
Platform | Windows | OS | 7 | OS Version | Ultimate |
Product Version | .Nightly | |
Target Version | 120808 | Fixed in Version | 120808 | |
|
Summary | 0001075: Зависает в редких случаях после импорта XML при обновлении меток (UpdateMarksList) |
Description | См. хотелку 516: http://sasgis.org/mantis/view.php?id=516#c4582
Версия Nightly.4681. |
Steps To Reproduce | |
Additional Information | |
Tags | sml, XML, импорт |
Relationships | |
Attached Files | ГВ-ПП - 25-06-2011 11-32-14.rar (519,316) 22-12-2011 14:00 http://www.sasgis.org/mantis/file_download.php?file_id=546&type=bug sas_night_marks.rar (2,893,719) 22-12-2011 22:51 http://www.sasgis.org/mantis/file_download.php?file_id=548&type=bug |
|
Issue History |
Date Modified | Username | Field | Change |
22-12-2011 06:32 | Tolik | New Issue | |
22-12-2011 06:37 | vasketsov | Note Added: 0004590 | |
22-12-2011 06:48 | Tolik | Status | new => acknowledged |
22-12-2011 13:41 | vdemidov | Note Added: 0004592 | |
22-12-2011 14:00 | vasketsov | Note Added: 0004597 | |
22-12-2011 14:00 | vasketsov | File Added: ГВ-ПП - 25-06-2011 11-32-14.rar | |
22-12-2011 14:22 | zed | Note Added: 0004598 | |
22-12-2011 14:23 | zed | Note Edited: 0004598 | bug_revision_view_page.php?bugnote_id=4598#r2272 |
22-12-2011 14:25 | vasketsov | Note Added: 0004600 | |
22-12-2011 14:27 | zed | Note Added: 0004601 | |
22-12-2011 14:34 | vasketsov | Note Edited: 0004600 | bug_revision_view_page.php?bugnote_id=4600#r2274 |
22-12-2011 14:40 | vdemidov | Note Added: 0004602 | |
22-12-2011 14:50 | vasketsov | Note Added: 0004603 | |
22-12-2011 14:52 | vasketsov | Note Edited: 0004603 | bug_revision_view_page.php?bugnote_id=4603#r2276 |
22-12-2011 14:53 | vasketsov | File Added: my_tracks.rar | |
22-12-2011 14:55 | vasketsov | Note Edited: 0004603 | bug_revision_view_page.php?bugnote_id=4603#r2277 |
22-12-2011 16:02 | Tolik | Note Added: 0004604 | |
22-12-2011 16:05 | Tolik | Note Edited: 0004604 | bug_revision_view_page.php?bugnote_id=4604#r2279 |
22-12-2011 16:24 | vasketsov | Note Added: 0004605 | |
22-12-2011 21:54 | vasketsov | Note Added: 0004606 | |
22-12-2011 21:55 | vasketsov | Note Edited: 0004606 | bug_revision_view_page.php?bugnote_id=4606#r2281 |
22-12-2011 22:05 | vasketsov | Note Edited: 0004606 | bug_revision_view_page.php?bugnote_id=4606#r2282 |
22-12-2011 22:07 | vasketsov | Summary | Зависает после нескольких импортов GPX => Зависает в редких случаях после импорта XML при обновлении меток (UpdateMarksList) |
22-12-2011 22:51 | vasketsov | File Added: sas_night_marks.rar | |
22-12-2011 22:52 | vasketsov | Note Added: 0004607 | |
23-12-2011 10:47 | vdemidov | Note Added: 0004612 | |
23-12-2011 15:06 | vdemidov | Note Added: 0004614 | |
23-12-2011 15:06 | vdemidov | Status | acknowledged => resolved |
23-12-2011 15:06 | vdemidov | Fixed in Version | => 120808 |
23-12-2011 15:06 | vdemidov | Resolution | open => fixed |
23-12-2011 15:06 | vdemidov | Assigned To | => vdemidov |
23-12-2011 15:20 | vasketsov | File Deleted: my_tracks.rar | |
23-12-2011 19:17 | vasketsov | Note Added: 0004618 | |
23-12-2011 19:57 | vdemidov | Note Added: 0004619 | |
23-12-2011 20:20 | vasketsov | Note Added: 0004620 | |
23-12-2011 22:13 | gpsMax | Tag Attached: XML | |
23-12-2011 22:13 | gpsMax | Tag Attached: импорт | |
24-12-2011 07:06 | Tolik | Note Added: 0004621 | |
24-12-2011 07:08 | Tolik | Note Edited: 0004621 | bug_revision_view_page.php?rev_id=2288 |
24-12-2011 07:13 | Tolik | Note Edited: 0004621 | bug_revision_view_page.php?rev_id=2289 |
24-12-2011 07:15 | Tolik | Note Edited: 0004621 | bug_revision_view_page.php?rev_id=2290 |
24-12-2011 13:48 | vdemidov | Note Added: 0004624 | |
24-12-2011 14:02 | Tolik | Note Deleted: 0004621 | |
25-12-2011 21:19 | gpsMax | Tag Attached: sml | |
23-01-2012 08:34 | vdemidov | Target Version | => 120808 |
10-10-2012 11:49 | Tolik | Status | resolved => closed |
Notes |
|
|
продублирую здесь:
поглядел - это не относится к собственно импорту вообще, тем более к gpx.
у меня Out of Memory возникает просто при импорте первого файла kml.
крэшится при обновлении меток (внутри function TMarksDb.ReadCurrentMark: IMark);
к сожалению, мне правда сейчас некогда смежные проблемы решать. |
|
|
|
А какой при этом размер sml? И сколько меток импортируется? Сколько программа при этом памяти кушает? |
|
|
|
>А какой при этом размер sml?
у меня было загружено три района кадастра от росреестра (э то мегов 40 gpx).
да это наверное не принципально. как я понял, там u_ImportMP и u_ImportHLG пописались, а u_ImportKML нет, в итоге там по-старому зовётся Add вместо новой записи метки в процедуре Do.... Я б и сделал также без Do..., но не уверен что ты именно этого хотел (вообще избавиться от Do...).
у мну крэшитсся на приаттаченном файле. |
|
|
(0004598)
|
zed
|
22-12-2011 14:22
(edited on: 22-12-2011 14:23) |
|
>у мну крэшитсся на приаттаченном файле
А у меня нет - импортирует 14520 чего-то там.
|
|
|
(0004600)
|
vasketsov
|
22-12-2011 14:25
(edited on: 22-12-2011 14:34) |
|
могут быть особенности при совпадении (имён?) меток.
вощем снёс все метки - и без проблем импортировал весь Толиков архив (почти 77 тыщ меток). и потом опять по новой поверх его же импортировал в произввольном порядке.
может и вправду слишком много меток было.
|
|
|
(0004601)
|
zed
|
22-12-2011 14:27
|
|
Может быть, я протестировал импорт в чистую программу, без посторонних меток. |
|
|
|
Вполне возможно. Считайте что программе сейчас требуется памяти примерно в 3 раза больше чем весит Sml. Так что если там метров 500 то увы. Хотя может это я и оптимистично очень. |
|
|
(0004603)
|
vasketsov
|
22-12-2011 14:50
(edited on: 22-12-2011 14:55) |
|
Гы. Воспроизвёл без меток.
Встаёт после Blob2ExtArr(FCdsMarks.FieldByName('LonLatArr'), VPoints);
По шагам:
1. Снёс руками все метки (удалил фаайлы категорий и меток).
2. Импортировал свои треки в категорию MSK_PERM. Все из архива (сейчас выложу архив). Сначала kml (по алфавиту) потом gpx (по алфавиту). После импорта менял имя меток для gpx на имя исходного файла gpx. Применить не жал.
3. Закрыл окошко импорта по OK.
4. Снова открыл импорт и импортировал Толиков файл (приаттачен) в категорию "Новая категория" (её не было до этого).
5. PROFIT!
зы. после крэша Толиковых меток нет, после закрытия саса файл меток 12.5 мешков.
ззы. может и проще можно, но уж как получилось (дважды подряд).
|
|
|
(0004604)
|
Tolik
|
22-12-2011 16:02
(edited on: 22-12-2011 16:05) |
|
Это я зазиповал один KML, что ли?
А хотел 4 GPX, после которых виснет. Акелла промахнулся :) Прошу прощения.
Ну не важно, этот KML сделан с помощью gpsbabel из реального GPX.
A sml небольшой, метра 3 всего.
|
|
|
|
Нет, это я отдельно перепаковал тот файл, на котором крэшится. |
|
|
(0004606)
|
vasketsov
|
22-12-2011 21:54
(edited on: 22-12-2011 22:05) |
|
Если грузить по моему алгоритму, то при загрузке Толикового файла, если поставить бряк в функции
function TMarkFactory.CreateMark(
на строке
if VPointCount > 0 then begin
то видно, что прога пытается создать объект из 73558 точек опупенное количество раз, ибо зовётся это изнутри цикла
for i := VMinCount to VMaxCount - 1 do begin
внутри процы
function TMarksDb.UpdateMarksList(AOldMarkList, ANewMarkList: IInterfaceList): IInterfaceList;
судя по всему всё количество раз (VMinCount=0, VMaxCount=14520) и идёт яростное убийство свободной памяти.
Была б рекурсия - завалился бы стек.
А вот почему внутри
function TImportKML.DoImport(AFileName: string; AConfig: IImportConfig): IInterfaceList;
забубенивается одно и то же все разы - надо смотреть.
зы. А вот фигушки. В TImportKML.DoImport массив длиной 73558 юзается только один раз. Где-то после засирается значит.
|
|
|
|
прицепил свои метки, с которыми просто не импортится Толиков файл.
больше помочь нечем. |
|
|
|
Блин. Воспроизводится. Но в чем причина даже идей нет. Идей как исправлять пока просто нет. |
|
|
|
Вроде бы вылечилось. Но работу с треками нужно переделывать. На очень длинных треках отрисовка идет крайне медленно. Займусь в ближайшее время. |
|
|
|
Подтверждаю. У меня импортируется то что раньше крэшилось. Сенкс. |
|
|
|
Если бы кто-то еще сделал процедуры чтения/записи sml-файлов без использования датасетов, было бы совсем хорошо. Сейчас в памяти все метки живут в виде объектов + в виде датасета, а во время сохранения еще и в виде текста. Ну очень неэффективно. |
|
|
|
Я так понял, что это XML. Тогда можно попробовать. Если а) исходить из возможности создания процедур (де)сериализации в XML, и б) если в рантайме можно избавиться от датасетов и текста, то я исключительно "за". В общем-то ничего сложного я пока не увидел в формате. Другое дело, что надо отдельную хотелку ))), и человеческое формльное описание этого XML. Ну и подождать, времени пока катастрофически нет, я только после каникул смогу.
Впрочем подумай, может перейти на полноценный kml раз и навсегда имеет смысл, но это надо рендер где-то надыбать (+ пописать операции с областью). Потому как по-любому импорт kml придётся докручивать, чтобы стили импортились и полигоны с дырками и многосвязные. Ещё неизвестно что проще, перепиливать имеющееся или новое впиливать. |
|
|
|
Все что не касается именно этого бага в отдельные инциденты. |
|