SASGIS

Веб-картография и навигация


View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0001075SAS.Планета[All Projects] Багpublic22-12-2011 06:3210-10-2012 11:49
ReporterTolik 
Assigned Tovdemidov 
PrioritynormalSeveritycrashReproducibilityalways
StatusclosedResolutionfixed 
PlatformWindowsOS7OS VersionUltimate
Product Version.Nightly 
Target Version120808Fixed in Version120808 
Summary0001075: Зависает в редких случаях после импорта XML при обновлении меток (UpdateMarksList)
DescriptionСм. хотелку 516: http://sasgis.org/mantis/view.php?id=516#c4582
Версия Nightly.4681.
Tagssml, XML, импорт
Attached Filesrar file icon ГВ-ПП - 25-06-2011 11-32-14.rar [^] (519,316 bytes) 22-12-2011 14:00
rar file icon sas_night_marks.rar [^] (2,893,719 bytes) 22-12-2011 22:51

- Relationships

-  Notes
(0004590)
vasketsov (manager)
22-12-2011 06:37

продублирую здесь:
поглядел - это не относится к собственно импорту вообще, тем более к gpx.
у меня Out of Memory возникает просто при импорте первого файла kml.
крэшится при обновлении меток (внутри function TMarksDb.ReadCurrentMark: IMark);
к сожалению, мне правда сейчас некогда смежные проблемы решать.
(0004592)
vdemidov (manager)
22-12-2011 13:41

А какой при этом размер sml? И сколько меток импортируется? Сколько программа при этом памяти кушает?
(0004597)
vasketsov (manager)
22-12-2011 14:00

>А какой при этом размер sml?
у меня было загружено три района кадастра от росреестра (э то мегов 40 gpx).

да это наверное не принципально. как я понял, там u_ImportMP и u_ImportHLG пописались, а u_ImportKML нет, в итоге там по-старому зовётся Add вместо новой записи метки в процедуре Do.... Я б и сделал также без Do..., но не уверен что ты именно этого хотел (вообще избавиться от Do...).

у мну крэшитсся на приаттаченном файле.
(0004598)
zed (manager)
22-12-2011 14:22
edited on: 22-12-2011 14:23

>у мну крэшитсся на приаттаченном файле
А у меня нет - импортирует 14520 чего-то там.

(0004600)
vasketsov (manager)
22-12-2011 14:25
edited on: 22-12-2011 14:34

могут быть особенности при совпадении (имён?) меток.
вощем снёс все метки - и без проблем импортировал весь Толиков архив (почти 77 тыщ меток). и потом опять по новой поверх его же импортировал в произввольном порядке.
может и вправду слишком много меток было.

(0004601)
zed (manager)
22-12-2011 14:27

Может быть, я протестировал импорт в чистую программу, без посторонних меток.
(0004602)
vdemidov (manager)
22-12-2011 14:40

Вполне возможно. Считайте что программе сейчас требуется памяти примерно в 3 раза больше чем весит Sml. Так что если там метров 500 то увы. Хотя может это я и оптимистично очень.
(0004603)
vasketsov (manager)
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 (manager)
22-12-2011 16:02
edited on: 22-12-2011 16:05

Это я зазиповал один KML, что ли?
А хотел 4 GPX, после которых виснет. Акелла промахнулся :) Прошу прощения.
Ну не важно, этот KML сделан с помощью gpsbabel из реального GPX.

A sml небольшой, метра 3 всего.

(0004605)
vasketsov (manager)
22-12-2011 16:24

Нет, это я отдельно перепаковал тот файл, на котором крэшится.
(0004606)
vasketsov (manager)
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 юзается только один раз. Где-то после засирается значит.

(0004607)
vasketsov (manager)
22-12-2011 22:52

прицепил свои метки, с которыми просто не импортится Толиков файл.
больше помочь нечем.
(0004612)
vdemidov (manager)
23-12-2011 10:47

Блин. Воспроизводится. Но в чем причина даже идей нет. Идей как исправлять пока просто нет.
(0004614)
vdemidov (manager)
23-12-2011 15:06

Вроде бы вылечилось. Но работу с треками нужно переделывать. На очень длинных треках отрисовка идет крайне медленно. Займусь в ближайшее время.
(0004618)
vasketsov (manager)
23-12-2011 19:17

Подтверждаю. У меня импортируется то что раньше крэшилось. Сенкс.
(0004619)
vdemidov (manager)
23-12-2011 19:57

Если бы кто-то еще сделал процедуры чтения/записи sml-файлов без использования датасетов, было бы совсем хорошо. Сейчас в памяти все метки живут в виде объектов + в виде датасета, а во время сохранения еще и в виде текста. Ну очень неэффективно.
(0004620)
vasketsov (manager)
23-12-2011 20:20

Я так понял, что это XML. Тогда можно попробовать. Если а) исходить из возможности создания процедур (де)сериализации в XML, и б) если в рантайме можно избавиться от датасетов и текста, то я исключительно "за". В общем-то ничего сложного я пока не увидел в формате. Другое дело, что надо отдельную хотелку ))), и человеческое формльное описание этого XML. Ну и подождать, времени пока катастрофически нет, я только после каникул смогу.
Впрочем подумай, может перейти на полноценный kml раз и навсегда имеет смысл, но это надо рендер где-то надыбать (+ пописать операции с областью). Потому как по-любому импорт kml придётся докручивать, чтобы стили импортились и полигоны с дырками и многосвязные. Ещё неизвестно что проще, перепиливать имеющееся или новое впиливать.
(0004624)
vdemidov (manager)
24-12-2011 13:48

Все что не касается именно этого бага в отдельные инциденты.

- Users who viewed this issue
User List Anonymous (2593x), hrucker (2x)
Total Views 2595
Last View 24-04-2024 22:06

- 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 View Revisions
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 View Revisions
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 View Revisions
22-12-2011 14:53 vasketsov File Added: my_tracks.rar
22-12-2011 14:55 vasketsov Note Edited: 0004603 View Revisions
22-12-2011 16:02 Tolik Note Added: 0004604
22-12-2011 16:05 Tolik Note Edited: 0004604 View Revisions
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 View Revisions
22-12-2011 22:05 vasketsov Note Edited: 0004606 View Revisions
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 View Revisions
24-12-2011 07:13 Tolik Note Edited: 0004621 View Revisions
24-12-2011 07:15 Tolik Note Edited: 0004621 View Revisions
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



Copyright © 2007 - 2024 SAS.Planet Team