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

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

04.07.2012, 18:10. Показов 1126. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru