![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 05.03.2012
Сообщений: 29
|
![]()
Здравствуйте!
Я в C# начинающий. Есть такой вот код выполняющийся в бесконечном цикле в отдельном потоке: Код:
Пробовал Код:
Подскажите, как правильно очищать память в данном случае. Забыл вот это (объявление и инициализация): Код:
Последний раз редактировалось mr_cipher; 15.08.2012 в 15:52. Причина: добавил инициализацию |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 21.01.2009
Сообщений: 719
|
![]() Код:
Изобретатель велосипедов
|
![]() |
![]() |
![]() |
#3 | |
Пользователь
Регистрация: 05.03.2012
Сообщений: 29
|
![]() Цитата:
Диспосил и mc_pic, и объект возвращаемый GetImage(), и делал массив статичным (фиксированного размера). Но проблему так и не решил. Может кто подскажет- какими средствами можно подглядеть какому объекту сколько памяти выделено (некоторую диаграмму выделения памяти) и моменты выделения. |
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 21.01.2009
Сообщений: 719
|
![]()
Ну как бы проверить-то нетрудно: комментируйте поочерёдно все участвующие в цикле объекты и смотрите, есть ли утечка.
И, если не трудно, выложите код GetImage....
Изобретатель велосипедов
Последний раз редактировалось Selestis; 15.08.2012 в 19:33. |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 15.12.2010
Сообщений: 398
|
![]()
попробуй ms_pic не создавать каждый раз новый а используя старый перезатирая.
А так лучше профайлером убедится что течёт. |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 05.03.2012
Сообщений: 29
|
![]() Код:
Что есть "профайлер" и с чем его едят? |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 15.12.2010
Сообщений: 398
|
![]()
Профайлеров не мало... Но могу посоветовать :
memprofiler Вот им триальной 30 дневной версией. А что такое профайлер ты легко найдёшь в тырнете |
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 05.03.2012
Сообщений: 29
|
![]()
Итак, потратил недельку времени, чтобы разобраться с профайлером. Прикольная штука.
От части мне это помогло, но запутало меня ещё больше. Исследовал влияние каждой строки кода на память. В профайлере, в любой ситуации, я наблюдаю график Total bytes практичеки на постоянном уровне (около 780 тыс. байт) в течение всего времени работы программы (присутствуют лишь небольшие колебания вверх-вниз, среднее значение постоянно). При этом, в Диспетчере задач кушаемая память продолжает неуклонно расти. Кстати, код немного переделал (суть не изменилась, только объявление всех переменных вынес за пределы цикла): Код:
Что течёт то??? Я боюсь, что когда объём съедаемой памяти достигнет 2 Гб программа просто вылетит. |
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 15.12.2010
Сообщений: 398
|
![]()
Сделай snapshot перед запуском скриншотера своего, включи и доводя до прироста в 50-100% памяти сделай промежуточных 2-а snapshot-а и последний перед закртием. Затем сохрани, заархивируй и выложы или мне кинь я посмотрю
При условии что ты делаешь все тем профайлером который я тебе кинул. |
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 05.03.2012
Сообщений: 29
|
![]()
Не туда смотрел.
(ТОлько это не скриншоттер - картинки ловлю с вебки.) Косяк зарыт тут: Код:
Код:
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проблема с переполнением памяти | maxeebon | Общие вопросы Delphi | 4 | 19.08.2011 22:09 |
Проблема с освобождением памяти | Vyachek2010 | Общие вопросы Delphi | 15 | 08.02.2011 17:05 |
Проблема с утечкой памяти | ExPeL | Win Api | 4 | 21.10.2010 22:13 |
Проблема с виделением памяти! | FreTFuL | Общие вопросы C/C++ | 1 | 07.05.2010 20:23 |
самописный assert: проблема с утечкой памяти) | sashonk | Общие вопросы C/C++ | 2 | 26.04.2010 15:58 |