|
1 / 0 / 0
Регистрация: 24.08.2016
Сообщений: 9
|
|||||||||||
Утечка памяти при работе с Graphics::TBitmap17.07.2020, 11:21. Показов 37855. Ответов 15
Метки нет (Все метки)
Есть код (получаю картинку с IP-камеры):
0
|
|||||||||||
| 17.07.2020, 11:21 | |
|
Ответы с готовыми решениями:
15
Утечка памяти Fmx::Graphics::TBitmap
TBitMap Canvas в многопотоке утечка памяти |
|
Супер-модератор
|
||
| 17.07.2020, 11:59 | ||
|
0
|
||
|
Модератор
|
|||||||||||
| 17.07.2020, 12:05 | |||||||||||
|
Создавать и удалять надо в одной области видимости (хотя, по хорошему, Вы бы AV иначе получали)...
Попробуйте через "умные указатели" объявить: не так вот
0
|
|||||||||||
|
1 / 0 / 0
Регистрация: 24.08.2016
Сообщений: 9
|
|||||||||||
| 17.07.2020, 12:20 [ТС] | |||||||||||
|
Ну это понятно, что в одной области видимости. Так все и сделано. Если бы я их объявил в разных областях, то и delete к указателю не смог применить - т.к. он был бы не "видим" в другой области видимости и компилятор его не прожевал бы. Т.е. такая схема была бы зарублена компилятором на момент компиляции:
Добавлено через 5 минут Нет. Через "TaskManager показывает" - это старый прикол у программистов. Даже анекдот был такой где-то:-) Утечка памяти именно тут. Т.к. запускаю этот блок в цикле и память выжирается на компе за полминуты вся. Я бы понял если бы мегабайт-два. Но пять гигов на компе улетает и TaskManager-ом видно даже. Добавлено через 2 минуты Вопрос простой - может я где - то с кодом налажал - и глаз замылился. Но вроде все правильно. Тут три сосны - вроде бы не заблудился?
0
|
|||||||||||
|
2670 / 1333 / 479
Регистрация: 08.11.2016
Сообщений: 3,679
|
|
| 17.07.2020, 14:04 | |
|
0
|
|
|
1 / 0 / 0
Регистрация: 24.08.2016
Сообщений: 9
|
||
| 17.07.2020, 14:43 [ТС] | ||
|
0
|
||
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
|
| 17.07.2020, 19:15 | |
|
protexprotex, больше кода покажите.
0
|
|
|
1 / 0 / 0
Регистрация: 24.08.2016
Сообщений: 9
|
|
| 17.07.2020, 19:27 [ТС] | |
|
Да там проект на полмиллиона строк. И ссылок функций друг на друга полно. Эта часть кода которая если исключить ее, то утечки не будет. Счас проверю пару идей.
0
|
|
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
||
| 17.07.2020, 22:31 | ||
|
protexprotex, ну тогда вам никто не поможет наверняка. Вот вы пишете
0
|
||
|
1 / 0 / 0
Регистрация: 24.08.2016
Сообщений: 9
|
|
| 20.07.2020, 08:54 [ТС] | |
|
Спасибо. Я просил посмотреть только этот код который я выложил здесь. Мне не нужны телепаты. С этим кодом все в порядке. Проблема где - то глубже. Сам разберусь.
0
|
|
|
фрилансер
6440 / 5634 / 1127
Регистрация: 11.10.2019
Сообщений: 14,980
|
|||||
| 20.07.2020, 10:09 | |||||
![]() кстати, даже в этой лапше логическая ошибка (которую автоуправление памятью не допустит): удаление нужно производить в порядке, обратном порядку создания
0
|
|||||
|
Модератор
|
||
| 20.07.2020, 10:33 | ||
|
0
|
||
|
1 / 0 / 0
Регистрация: 24.08.2016
Сообщений: 9
|
|
| 20.07.2020, 10:33 [ТС] | |
|
"удаление нужно производить в порядке, обратном порядку создания" - это почему?
т.е. так: int *m1 = new int[10]; int *n1 = new int[10]; delete []m1; delete []n1; не тоже самое что int *m1 = new int[10]; int *n1 = new int[10]; delete []n1; delete []m1; ? - обоснуйте Вашу мысль, пжл. В чем разница. И по поводу автоуправления памятью тоже не понял. Если я все корректно сделал, то автоуправление не нужно.
0
|
|
|
фрилансер
6440 / 5634 / 1127
Регистрация: 11.10.2019
Сообщений: 14,980
|
|||
| 20.07.2020, 11:09 | |||
|
я тоже спорить не буду. Когда объекты меж собой не связаны, порядок неважен, конечно же. Но а вдруг они будут связаны? Тогда все "внутренние" объекты нужно удалить ранее, чем будет удалён "внешний" (при инкапсуляции или при создании на стеке порядок удаления будет построен автоматически, а вручную можно ошибиться) Зачем закладывать возможность ошибки, когда можно этого не делать ? ![]() Кстати, когда найдётся утечка в том самом другом коде, интересно было бы узнать причину Добавлено через 4 минуты к слову, когда-то, на заре своей практики, я не признавал STL и пользовался исключительно самописными контейнерами и, конечно же, обилием new и delete когда я понял, что это источник багов по невнимательности и потеря времени, я стал пользоваться STL и инкапсуляцией. Я уже давно забыл, что такое утечка памяти, мне сейчас в своём коде очень сложно создать такую ситуацию, когда она будет
0
|
|||
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
||
| 20.07.2020, 11:19 | ||
|
protexprotex, если кратко, то Алексей1153 говорит вам про "системную" ошибку. Т.е. глобально причина в том, что вы полагаетесь на свою внимательность:
Это глобальный взгляд на проблему, а не указание конкретной ситуации. Когда он выделил все new в вашем коде, это не означало, что проблема конкретно в них, но означало, что это "системный" фактор указывающий вашу приверженность ручному контролю.
0
|
||
|
1 / 0 / 0
Регистрация: 24.08.2016
Сообщений: 9
|
|
| 20.07.2020, 11:25 [ТС] | |
|
Хм. Если объекты между собой связаны, то тогда даже автоуправление памятью Вам не поможет. Это уже баг программера на уровне логики работы программы.
По поводу "когда найдётся утечка в том самом другом коде" - у меня вопрос был именно по этому выложенному коду. Свой баг я найду. Это просто дело времени. День-два. Тут не проблема что не удалил объект, а насколько я понял с передачей указателя на элемент списка при построении дерева. И где - то (ищу где) этот указатель при начале функции не на начало списка, а на конец. И тут список нарастает бесконтрольно. Добавлено через 3 минуты Там блок на 10 строк. Городить огород там не нужно с автораспределением памяти. Но это дело каждого. У меня свой стиль. У Вас другой. Подобного рода ошибки у меня возникают исключительно редко. Хотя проекты на сотни тысяч строк. Т.к. когда создаю объект (new) то сразу пишу delete для него. И проблем нет. Тут именно с указателем на структуру проблема. И Ваше автораспределение памяти тут не поможет никак
0
|
|
| 20.07.2020, 11:25 | |
|
Помогаю со студенческими работами здесь
16
Утечка памяти при работе с PictureBox!
Утечка памяти при работе со строками в TList Утечка памяти при работе с файлами TIFF
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
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
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|