Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
2 / 2 / 0
Регистрация: 07.08.2015
Сообщений: 428

Освобождение памяти после закрытие данных в Делфи

16.02.2018, 14:09. Показов 2489. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Мир всем и привет !
как освободит, очищать память приложение после

Delphi
1
FDQuery.close;
?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.02.2018, 14:09
Ответы с готовыми решениями:

Освобождение памяти после репликации
Всем привет. Версия Delphi XE6, база данных FireBird. В своей программе реализовал механизм репликации. Устроена она у меня таким образом....

Освобождение памяти после динамического массива
Есть динамический массив, но почему-то на строке delete FirstPoint; студия (2010) пишет что-то про попытку записи в память после конца кучи...

Освобождение памяти после std:bind
Что имею: - CentOS - gcc 4.8 - valgrind Что делаю - С помощью valgrind устраняю утечки - Если приложение остановлено...

9
Модератор
 Аватар для D1973
9912 / 6449 / 2455
Регистрация: 21.01.2014
Сообщений: 27,377
Записей в блоге: 3
16.02.2018, 14:33
А что, разве что-то там еще в памяти есть? Вы выполнили запрос и закрыли его: все! нет никакого объема данных, которые были получены в результате этого запроса... Память, выделенная под запрос, готова к приему новых данных...
0
2 / 2 / 0
Регистрация: 07.08.2015
Сообщений: 428
16.02.2018, 14:42  [ТС]
Цитата Сообщение от D1973 Посмотреть сообщение
А что, разве что-то там еще в памяти есть?
к сожалению все ещё есть )) чуть ) например когда я открываю базу там показывает 1000 записи и 3,3 мб памяти. А когда я жму на кнопку где увеличивается по 1000 записи, когда будет 100 000 то память будет 15 мб а после закрытые базы показывает 6.5 мб это почему так ?
0
Модератор
 Аватар для D1973
9912 / 6449 / 2455
Регистрация: 21.01.2014
Сообщений: 27,377
Записей в блоге: 3
16.02.2018, 14:47
Firuz, мне кажется, что Вы путаете понятия "размер памяти, занимаемый приложением в процессе работы" и "размер файла БД"
0
2 / 2 / 0
Регистрация: 07.08.2015
Сообщений: 428
16.02.2018, 14:50  [ТС]
да я перепутал ) с базой но и при закрытии данных размер приложении увеличивается ) да и беда в том что когда не закрываю программу и открываю таблицу до 100 000 то после закрытие базы показывает 7 мб и если повторяю то увеличивается по 0.5 мб
0
Модератор
 Аватар для D1973
9912 / 6449 / 2455
Регистрация: 21.01.2014
Сообщений: 27,377
Записей в блоге: 3
16.02.2018, 15:36
Firuz, во первых, кода Вашего приложения никто не видит, чтобы судить о причинах утечки памяти... Более того, просто код не даст всей информации, требуется тестировать весь проект, но это, насколько я понимаю, невозможно...
В вторых, Вы уже создавали тему по поводу сжатия данных в БД Access, и там Вам был дан ответ, как и что делать в случае разрастания объема БД... Что-то там не так было?
0
2 / 2 / 0
Регистрация: 07.08.2015
Сообщений: 428
16.02.2018, 15:46  [ТС]
Цитата Сообщение от D1973 Посмотреть сообщение
В вторых, Вы уже создавали тему по поводу сжатия данных в БД Access
да я помню ) но это другое там было про базу а тут про приложение сама база где та 570мб там где та 15 млн записи я просто через лимит открывал таблицу до 100 000 но в диспечере показывает больше после каждой повторение открытие и закрытие данных ну в основном если закрыть саму программу то все хорошо
0
пофигист широкого профиля
4769 / 3204 / 862
Регистрация: 15.07.2013
Сообщений: 18,609
18.02.2018, 02:15
Цитата Сообщение от Firuz Посмотреть сообщение
но в диспечере показывает больше после каждой повторение открытие и закрытие данных
Диспетчер он кто - папа твой? Что ты воспринимаешь то, что он показывает за непременную истину?
Приложение Windows может многократно запрашивать выделение памяти у ОС и многократно возвращать её.
Когда оно запрашивает память у ОС, тогда эта память ему выделяется (если есть в наличии). А вот когда возвращает, тут вступает в силу логика т.н. "менеджера памяти". Очень глупо и неэффективно сразу и полностью возвращать эту память ОС. Ведь приложению скорее всего опять потребуется выделить память.
0
882 / 404 / 173
Регистрация: 20.10.2016
Сообщений: 1,828
18.02.2018, 20:01
Не имея кода проекта могу посоветовать только использовать ReportMemoryLeaksOnShutdown. Утечку он не уберет, но хоть будет понятно что там утекает
0
 Аватар для edrёn_baton
5 / 5 / 0
Регистрация: 19.08.2010
Сообщений: 104
27.07.2018, 15:03
Проблема похожая:
В цикле перебирается небольшая (57000 записей), но с блобами, таблица mssql и эти данные пишутся в таблицу PG. Процесс не быстрый и выжирает всю память - видно как ступеньками увеличивается занимаемый объем. Я специально эти 57000 записей запрашиваю по 1000 и после каждой вставки коммит - один фиг. Хотя признаться до "Out of memory" не доходило.
Как сделать, чтобы память возвращалась опять в работу?

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
var
  i: integer;
begin
  for i := 1 to 57 do
  begin
    FDQuery2.Close;
    FDQuery2.ParamByName('cnt').AsInteger := i;
    FDQuery2.Open();
 
    FDQuery2.First;
    while not FDQuery2.Eof do
    begin
      with FDQuery1 do
      begin
        Close;
        ParamByName('blob_data').LoadFromStream(FDQuery2.CreateBlobStream(FDQuery2.FieldByName('blob_data'),
                                                                                                         TBlobStreamMode.bmRead), ftBlob);
        ExecSQL;
        FDConnection2.Commit;
      end;
 
      FDQuery2.Next;
    end;
  end;
end;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.07.2018, 15:03
Помогаю со студенческими работами здесь

Освобождение памяти после работы с Excel
Доброго времени суток, уважаемые знатоки. На работу решил написать программу для обработки Excel файлов. Раньше таким не занимался. Начал...

Освобождение памяти после выполнения SQL запроса
Моя программа последовательно выполняет простые запросы к двум БД, извекая из них нужные записи. Не смотря на то, что из БД извекаются не...

Освобождение памяти после использования трёхмерного массива
Здравствуйте! Возникла трудность с удалением трехмерного массива... Моя запись: //создание float ***M = new float **; for...

Освобождение памяти после "указателя на указатель"
Подскажите пожалуйста, как корректно освободить память после вот такого выделения. int i = 0, n =0; const int size = 10; int**mass...

Резервирование памяти/освобождение памяти для трехмерного массива
Необходимо создать трехмерный массив (A), в котором элементы вдоль направления Z выли бы выровнены по 16 байт. Есть две проблемы: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru