Утечка Памяти
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Утечка Памяти Expand / Collapse
Автор
Сообщение
25.07.2006 21:36
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

участник
Last Login: 31.07.2006 0:48
Сообщ.: 10, Visits: 49
Помогите пожалуйста.
Есть сервис nt.
Попробую передать основной смысл, чтоб не грузить ненужным кодом.

// обработчик
void ServHandler(DWORD Opcode)
{
InitArr();
while (Status == "'Running'")
{
// Засыпаем на 5 минут
Sleep(60000*5);
Function();
}
KillArr();
}

InitArr() - выделение памяти.
KillArr() - освобождение.

В Function():
1) WSAStartup(MAKEWORD(1, 1), &wd); - инициализация винсока.
WSACleanup(); - тож присутствует.
2) Работа со строками: strcpy, strlen
3) HINTERNET hInternet = .....
hInternetFile = InternetConnect(hInternet.....
И соответственно:
InternetCloseHandle(hInternetFile);
InternetCloseHandle(hInternet);

Смысл сервиса:
Каждые 5 минут коннектится на фтп и оставляет там файл.

Ситуация следующая. Отслеживал память в диспетчере.
Запуск сервиса - 2024 КБ
1 коннект - 3936 КБ
2 коннект - 4012 КБ
3 коннект - 4012 КБ
сейчас уже 7 и всё ещё 4012 КБ.
При всех коннектах результат тот же и работа во всех случаях правильная.

Прошу прощения за скорее всего глупые вопросы, но всё же интересно, что же происходит?

Стоит ли ожидать последующего увеличения расхода памяти и можно ли доверять диспетчеру задач.
ПросвЯтите плиз.

С уважением, Дмитрий
Сообщ. #901405
26.07.2006 12:38
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

модератор
Last Login: 10.11.2008 0:08
Сообщ.: 1 298, Visits: 12 501
Диспетчеру задач доверять нельзя.

Для проверки программы на утечку памяти стоит воспользоваться инструментами диагностики. Например, если ваша программа позволяет использование классов MFC библиотеки, то рекомендую воспользоваться встроенными механизмами - класс CMemoryState.

Вот здесь можно посмотреть примеры:
http://msdn2.microsoft.com/en-us/library/8ky2wh64.aspx
http://msdn2.microsoft.com/en-us/library/x832ycx7.aspx

Удачи,
Владимир

Сообщ. #901450
26.07.2006 17:41
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

участник
Last Login: 31.07.2006 0:48
Сообщ.: 10, Visits: 49
boombastik (26.07.2006)
Диспетчеру задач доверять нельзя.

Для проверки программы на утечку памяти стоит воспользоваться инструментами диагностики. Например, если ваша программа позволяет использование классов MFC библиотеки, то рекомендую воспользоваться встроенными механизмами - класс CMemoryState.

Вот здесь можно посмотреть примеры:
http://msdn2.microsoft.com/en-us/library/8ky2wh64.aspx
http://msdn2.microsoft.com/en-us/library/x832ycx7.aspx

Удачи,
Владимир

Спасибо, Владимир, но у меня всё без mfc и очень бы нехотелось с ним сейчас связываться. Что делать в этом случае?

С Уважением, Дмитрий

Сообщ. #901476
27.07.2006 10:30
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

модератор
Last Login: 10.11.2008 0:08
Сообщ.: 1 298, Visits: 12 501
Например вот так: http://www.flipcode.com/articles/article_memoryleaks.shtml

Вкратце, скомпилировать программу в Debug-режиме использовать функцию DumpUnfreed() в момент, когда ты считаешь, что вся память уже освобождена, увидишь список неосвобожденных переменных.

Можно использовать профессиональные инструменты поп поиску memory leaks и анализу приложения в целом, так называемые профайлеры. Что-нибудь типа такого:
http://www.codeproject.com/tools/leakfinder.asp
http://www.automatedqa.com/products/aqtime/
http://www.lw-tech.com/
http://www.glowcode.com/summary.htm

и др. погугли, я не знаю какой профайлер считается лучшим для VC++

Удачи,
Владимир
Сообщ. #901513
27.07.2006 17:50
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

участник
Last Login: 31.07.2006 0:48
Сообщ.: 10, Visits: 49
Спасибо!

Теперь вижу, куда нужно рыть. :)

С уважением, Дмитрий

Сообщ. #901580
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl

Время GMT +3:00, Сейчас 6:33