Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Утечка памяти (copyfile ?) 
:(
    Опции темы
nikitos1980
Дата 29.6.2009, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 96
Регистрация: 17.5.2008

Репутация: нет
Всего: нет



Помогите пожалуйста найти причину утечки памяти...
Я постарался в комментариях в коде описать проблему.

Код

try
       {
        // Блок кода, отображающий путь к файлу, из которого копируется и куда копируется
        SetDlgItemText(IDC_FROM, strFile);
        SetDlgItemText(IDC_TO, strDestination);
        // Получаю размер файла для суммирования общего размера скопированной информации
        CFile tmpSrcFile(strFile, CFile::modeNoInherit);
        pView->m_dRealCopied += tmpSrcFile.GetLength(); // Непосредственно сумма скопированной инфы
        tmpSrcFile.Close();
        // А вот здесь начинает утекать память, я комментировал все блоки кода, кроме функции 
        // CopyFile, и тогда с памятью все ок
        if (CopyFile(strFile, strDestination, FALSE))
        {
         // Здесь я изменяю дату модификации скопированного файла
         // в блоке catch  получаю кучу ошибок, но они не так сейчас волнуют, похоже, что они вызваны
         // тем, что после копирования сразу не всегда можно открыть файл для изменения 
         // даты модификации
         CFile tmpFile(strDestination, CFile::modeNoInherit);
         FILETIME ft;
         SYSTEMTIME st;
         GetSystemTime(&st);
         SystemTimeToFileTime(&st, &ft);
         SetFileTime(tmpFile.m_hFile, (LPFILETIME)NULL, (LPFILETIME)NULL, &ft);
         tmpFile.Close();
        }
        else
        {
         // Вывод ошибки в моем окне вида
         strDestination = CString("Ошибка записи файла ") + strDestination;
         pView->Trace(strDestination);
        }
       }
       catch (CFileException* error)
       {
        pView->Trace(error->m_strFileName);
       }


PM MAIL WWW   Вверх
jonie
Дата 29.6.2009, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 6
Всего: 118



эмн, нескромный вопрос: где в коде вы замерили использование памяти?


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
nikitos1980
Дата 29.6.2009, 19:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 96
Регистрация: 17.5.2008

Репутация: нет
Всего: нет



делаю простым способом: через диспетчер задач виндоус слежу за состоянием памяти приложения
Вижуал студио пишет detected memory leaks, но я как-то не особо беспокоюсь по этому поводу, так как он ругается даже например при созднии связанных списков CTypedPtrList...
PM MAIL WWW   Вверх
Earnest
Дата 29.6.2009, 20:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Цитата(nikitos1980 @  29.6.2009,  20:20 Найти цитируемый пост)
делаю простым способом: через диспетчер задач виндоус слежу за состоянием памяти приложения

Это еще не утечка: используемая память после вырастания обычно не спешит возвращаться системе. Скажем, хип подрос, глобально он занимает больше места, но после освобождения динамических объектов не уменьшается.

Цитата(nikitos1980 @  29.6.2009,  20:20 Найти цитируемый пост)
Вижуал студио пишет detected memory leaks, но я как-то не особо беспокоюсь по этому поводу, так как он ругается даже например при созднии связанных списков CTypedPtrList... 

А вот это как раз утечка, и напрасно ты не беспокоишься. Эти списки предполагают, что за временем жизни хранимых элементов ты будешь смотреть сам (т.е. удалять после использования).


--------------------
...
PM   Вверх
nikitos1980
Дата 29.6.2009, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 96
Регистрация: 17.5.2008

Репутация: нет
Всего: нет



Earnest, я пишу программу для бэкапа файлов: она запускается в теневом режиме, проверяет дату модификации файлов на диске (источнике и адресате), и копирует, если файл был изменен. Иногда объем копируемой информации занимает десятки гигабайт. Если копируется около 1Гб, то у меня возрастает объем памяти (не моего процесса, а общей, справа внизу в окне) на 100-150 Мб! Я не пойму почему она растет, все перерыл, нашел что при копировании... Может ошибки какие-то появляются, и они занимают место. Пробовал в блоке catch (CFileException* error) убить error (error->Delete()) - не помогает...
PM MAIL WWW   Вверх
Alexeis
Дата 29.6.2009, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 3
Всего: 459



Цитата(nikitos1980 @  29.6.2009,  19:57 Найти цитируемый пост)
то у меня возрастает объем памяти (не моего процесса, а общей, справа внизу в окне) на 100-150 Мб! Я не пойму почему она растет, все перерыл, нашел что при копировании...

  оська кэширует данные повторяющихся операций для ускорения работы. Это еще что, у меня виста умудряется почти 4Гб Озу выжрать при распаковке больших архивов или при повторной записи больших образов.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
jonie
Дата 29.6.2009, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 6
Всего: 118



Цитата

Вижуал студио пишет detected memory leaks, но я как-то не особо беспокоюсь по этому поводу,

ага, это почти как "Милый, у меня задержка два месяца и все тесты что я опробывала дают 2-е полоски, но ты не беспокойся" (вот чувствую меня сейчас тихо возненавидят некоторые дамы тут за аналогии)...
Поверьте мне, то что вам пишет студия - о том стоит беспокоится всегда.


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.2016 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.