Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798

Куда "утекает" память или верить ли Диспетчеру задач?

04.07.2012, 18:10. Показов 1158. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите разобраться, плз: в приложении некоторые данные загружаются из базы mysql, используется библиотека libmysql. При выборе строки в таблице с перечнем картинок в TImage foto загружается bmp из longblob-поля базы. И вот на днях обратил внимание, что поглощается память при переборе картинок. То-есть Диспетчер задач показывает "Память (частный рабочий набор) = 12000 кб, а потом при каждом щелчке на таблице это значение растет "со скоростью" удвоенного размера картинки. Виновата функция getFoto (если верить Дипетчеру, конечно)...
C++
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
26
27
void __fastcall TForm1::t_cxemyClick(TObject *Sender)
{
     if (t_cxemy->Col == 1) t_cxemy->Options<<goEditing ;
     else                   t_cxemy->Options>>goEditing ;
     foto->Picture=NULL;
     if (t_cxemy->Cells[2][t_cxemy->Row].Length()>2) getFoto(t_cxemy->Row);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::getFoto(int numrow)
{
  query="SELECT imag FROM "+edBasa->Text+".config WHERE indd="+IntToStr(40+numrow) ;
  Zapros();
       if (zF==0)
    {
         TMemoryStream *mas = new TMemoryStream;
         Res = mysql_store_result(Con);
         char * *bb = mysql_fetch_row(Res);
         unsigned long *ds = mysql_fetch_lengths(Res);
         try
         {  mas->Write(&bb[0][0], ds[0]);
            mas->Position = 0;
            foto->Picture->Bitmap->LoadFromStream(mas);  }
         catch(...)  {  foto->Picture->Bitmap=NULL;  }
         delete mas;
         Res = NULL;  mas = NULL;
    }
}
Добавлено через 49 минут
Вообще-то, наверное, некорректно приставать с таким специфическим вопросом; методом исключения я установил, что память съедается вот этой строкой: Res = mysql_store_result(Con);
Res здесь - это структура из библиотеки, в которой с десяток полей. После выполнения запроса и приведенной операции она почему-то не очищается (я думал - это задача libmysql), а продолжает накапливать информацию.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.07.2012, 18:10
Ответы с готовыми решениями:

Куда утекает память?
При работе скрипта медленно но уверенно увеличивается объем памяти, которую использует процесс. Помимо увеличений на 50-150 Kb, есть...

Куда утекает память
Проблема такая, когда озу загружена на ~70% ОСь начинает спамить оповещения о том, что ей не хватает памяти и нужно закрыть какое то из...

Куда утекает память
Бесполезный код проверяет время работы функции. Память выделяется под массив и высвобождается перед выходом из функции. Тем не...

1
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
10.07.2012, 10:54  [ТС]
.. Все оказалось банально и просто: нужно "освобождать" результат запроса такой вот строкой__
C++
1
mysql_free_result(Res);
Проблема решена.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.07.2012, 10:54
Помогаю со студенческими работами здесь

Куда в таком простом коде утекает память?
Не пойму куда девается память в этом простом коде: For Each dir_name As String In...

Куда утекает память при копировании изображения в буфер обмена
В цикле Repeat копирую изображение в буфер обмена. Вроде освобождаю, но количество памяти занимаемой приложением ростёт по 19 - 21 Кб в...

Не понимаю, куда утекает память при заупске процесса, хотя все free
Пишу Shell в си коде. Вводится строка, ее разбиваю на слова и заношу все это в двумерный динамический массив. До этого момента с памятью...

Куда утекает трафик?
Здравствуйте! У меня очень серьезная проблема. Я, в силу обстоятельств, пользуюсь сейчас только мобильным интернетом с лимитом 2,5Гб в...

Куда утекает весь трафик?
В последнее время обеспокоился слежкой спецслужб за людьми и поставил прогу для учета трафика. Не пойму, куда у меня утекло 450 и 37 ГБ!!...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru