2 / 2 / 1
Регистрация: 31.01.2015
Сообщений: 26
|
|||||||||||
1 | |||||||||||
TBitMap Canvas в многопотоке утечка памяти29.05.2015, 18:26. Показов 2041. Ответов 4
Метки нет (Все метки)
И так для теста на писал не сколько функций.
Тут все нормально очищает:
Проходит цикл 200 в дитспечере задач "Память" показывает сколько было старта, столько и осталось после завершения. Теперь же проблемное место. Тот же самый код беру и засовываю в функцию, а эта функция вызывается в потоке.
Далее комментирую строчку //BitMapIn.Canvas.Draw(0,0,InJPEG); тогда нечего не переполняется. Что же делать? Добавлено через 35 минут Когда 1 мегабайтовая картинка в MemoryImages проходит 10 потоков, то после завершения в память добавляется +20-30 мб Добавлено через 36 минут В общем обернул в try except и он выдает это "JPEG error #68" или это "JPEG error #61" и то оставляет то нет по +10 мб в памяти. Конфликтует как то между собой чтоле когда в многопоток работает. Если слать в поток команду по 1 запросу. Т.е. Поток создал он отработал, потом опять создал. Не одновременно а по очередно, то нет переполнения. Как решить то из за чего он конфликтует?
0
|
29.05.2015, 18:26 | |
Ответы с готовыми решениями:
4
Утечка памяти в потоке при многократной обработке TBitmap Утечка памяти Fmx::Graphics::TBitmap Утечка памяти при работе с Graphics::TBitmap Создание компонента,как прикрутить TBitmap->Canvas |
2664 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
|
29.05.2015, 21:36 | 2 |
0
|
2 / 2 / 1
Регистрация: 31.01.2015
Сообщений: 26
|
|
29.05.2015, 21:40 [ТС] | 3 |
А как поступить, к примеру загружается картинки 3 и в течении дня они берутся и редактируются во много потоке. Как лучше реализовать. Я вот сделал когда софт запускается то в массив картинок загружаются картинки и далее из него уже потоки дергают изображения, видать то что одновременно бывает обращаются и происходит конфликт, так как лучше сделать через синхронизацию. Так скорость снизится
0
|
2664 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
|
29.05.2015, 21:50 | 4 |
"Дерготня" в приведенном тобой коде присутствует
А редактированием и близко не пахнет.
0
|
2 / 2 / 1
Регистрация: 31.01.2015
Сообщений: 26
|
|||||||||||
29.05.2015, 23:38 [ТС] | 5 | ||||||||||
Это я пример привел, а основной код большой. Редактирует нормально все. Там переполнения нету. Анализировал проверял все. Ладно с дерганьем пофиг другое ченить придумаю, а вот про редактирование спрошу. Вообщем когда картинка выдернута, она разрезается на не сколько частей рандом строк, рандом столбцов. И вот еще одна проблема, я значит копиректом копирую по вычисленным координатам в новосозданый BitMap:
Добавлено через 43 минуты Вылетает исключение "canvas does not allow drawing". С тем извращением реже)
0
|
29.05.2015, 23:38 | |
29.05.2015, 23:38 | |
Помогаю со студенческими работами здесь
5
TJpegImage в TBitmap, и как можно использовать Canvas для JPEG без потери качества! Canvas утечка ресурсов HttpWebRequest, расход памяти непомерно больших объемов и , как следствие, утечка памяти Вектор, утечка памяти, функция создания и выделение памяти Загрузка или использование TBitmap из памяти Утечка памяти Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |