На главную... Продукты | Технологии | Классификаторы | Проекты | Скачать | Цены| Форум | Статьи | Обучение | Контакты

Утечка памяти

Поиск  Пользователи  Правила  Войти
Форум » Настольные приложения » GIS ToolKit, GIS ToolKit Active, ГИС Конструктор для Windows
Страницы: Пред. 1 2
RSS
Утечка памяти
 
Проверяем.
Пока утечек не выявлено.
Неосвобождение памяти процессом при операциях файлового ввода-вывода не свидетельствуют напрямую о наличии утечек.
В этот процесс вмешивается также и операционная система, которая пытается оптимизировать файловые операции.

Цитата
Сергей Алексеев написал:
Решил проверить тот же код уже на SDK. В SDK такой проблемы не обнаружил, память освобождается корректно.

SDK12 + ГИС Панорама 12 x64?
Прикладные задачи запускаются при условии наличия открытой карты. То есть процесс уже выделил память на файловые операции. Поэтому последующие операции не так заметны в Process Explorer.

Вот пример.

Это запуск программы WinWord, затем открытия в нем документа и закрытие его. Объем выделенной памяти не возвращается в исходное состояние.
Это не говорит о том, что память утекает.

Скорее всего причина падения в другом.

С каким классификатором создаются карты?
Этот классификатор использует какие либо библиотеки пользовательских условных знаков (*.iml) или библиотеки 3D-объектов (*.p3d)?

Есть возможность предоставить нам для анализа Ваш код и классификатор со всеми библиотеками?
 
Цитата
Денис Вицко написал:
Есть возможность предоставить нам для анализа Ваш код и классификатор со всеми библиотеками?
В архиве находится наш тестовый проект который падает при достижении порядка 1,5 тыс. созданных и 5 тыс. открываемых карт.
Подскажите пожалуйста где и что мы делаем не правильно и почему не освобождается память?

Приложение 32-х разрядное.

https://yadi.sk/d/U3P-8Y6O3TtGmD
 
Есть какая-то проблема с многократной загрузкой\выгрузкой библиотек (LoadLibrary\FreeLibrary), в которых есть VCL-компоненты.
Мы эту проблему компенсируем в новой версии библиотек.
В Вашем классификаторе есть ссылка на библиотеку shape.iml, в которой есть VCL-компоненты. После 1500 команд загрузки\выгрузки возникает проблема в работе программы.

Вы можете сделать следующее:

До начала цикла обработки карт открыть классификатор, а по окончании обработки - закрыть.

HRSC hrsc = mapOpenRsc("50t09g_conv.rsc");      

// Обработка тысяч листов ...

mapCloseRsc(hrsc);

Это существенно ускорит обработку, поскольку разбор классификатора на каждую карту занимает время больше ее обработки.
И это исключит подгрузку\выгрузку служебных файлов в цикле.

Утечек памяти или любых других ресурсов в наших текстах нет.
Для проверки есть различные внутренние диагностические средства.
 
Цитата
Oleg Belenkov написал:
До начала цикла обработки карт открыть классификатор, а по окончании обработки - закрыть.
Добрый день.
Да, это решило проблему. Утечки памяти больше нет.
Цитата
Oleg Belenkov написал:
Утечек памяти или любых других ресурсов в наших текстах нет.
А нам от этого не легче. Нам нужно решать наши проблемы, а не мучиться неделю с чужими.  
Страницы: Пред. 1 2
Читают тему (гостей: 1)



© КБ Панорама, 1991-2024

Регистрируясь или авторизуясь на форуме, Вы соглашаетесь с Политикой конфиденциальности