Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.75
xadd
0 / 0 / 0
Регистрация: 25.07.2006
Сообщений: 10
#1

Каждые 5 минут коннектится на фтп и оставляет там файл. Утечка памяти. - C++

26.07.2006, 01:36. Просмотров 2011. Ответов 4
Метки нет (Все метки)

Помогите пожалуйста.
Есть сервис 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 КБ.
При всех коннектах результат тот же и работа во всех случаях правильная.

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

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

С уважением, Дмитрий
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.07.2006, 01:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Каждые 5 минут коннектится на фтп и оставляет там файл. Утечка памяти. (C++):

Таймер, запускающий выполнение функции каждые n минут - C++
Необходим таймер, который будет Включать(Запускать) функцию каждые n-минут. Добавлено через 12 минут Решил проблему сам - ...

Утечка памяти в - C++
Кто подскажет плиз. Тут у меня утечка памяти foreach (var file in xpsFiles) { ...

утечка памяти - C++
доброго времени суток Уважаемые форумчане, помогите пожалуйста разобраться с утечками памяти есть массив с геометрическими фигурами. ...

Утечка памяти?! - C++
Джесс Либерти и Дэвид Хорват "Освой самостоятельно С++ за 24 часа", вырезка из листинга 15.4 (стр 233): Строка 26 - Утечка памяти?...

Утечка памяти - C++
Не могу понять как избежать утечки памяти в своей программе... привожу кусок в одном из мест где на мой взгляд она происходит... Array...

утечка памяти - C++
Может кто-то проверить есть ли здесь утечка памяти? Мне почему-то кажется что есть. В задачи нужно когда пользователь сделал операции...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
boombastik
7 / 7 / 0
Регистрация: 13.02.2007
Сообщений: 1,255
26.07.2006, 16:38 #2
Диспетчеру задач доверять нельзя.



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



Вот здесь можно посмотреть примеры:

http://msdn2.microsoft.com/en-us/library/8ky2wh64.aspx

http://msdn2.microsoft.com/en-us/library/x832ycx7.aspx



Удачи,

Владимир


xadd
0 / 0 / 0
Регистрация: 25.07.2006
Сообщений: 10
26.07.2006, 21:41  [ТС] #3
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 и очень бы нехотелось с ним сейчас связываться. Что делать в этом случае?
С Уважением, Дмитрий
boombastik
7 / 7 / 0
Регистрация: 13.02.2007
Сообщений: 1,255
27.07.2006, 14:30 #4
Например вот так: http://www.flipcode.com/articles/art...oryleaks.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++



Удачи,

Владимир
xadd
0 / 0 / 0
Регистрация: 25.07.2006
Сообщений: 10
27.07.2006, 21:50  [ТС] #5
Спасибо!
Теперь вижу, куда нужно рыть.
С уважением, Дмитрий
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.07.2006, 21:50
Привет! Вот еще темы с ответами:

Утечка памяти - C++
Доброго времени суток, форумчане. Помогите справиться с утечкой памяти, не понятно где зараза засела. Это класс представления числа в СОК...

Утечка памяти - C++
Либо я себе мозг запудрила, либо помогите мне :) есть у меня вектор vector<char*> names_variable; дополняю его таким образом ...

Утечка памяти - C++
Господа подскажите как узнать какая п̶а̶д̶л̶а̶ переменная жрет память? Или как посмотреть сколько вообще переменных и объектов находятся в...

Утечка памяти - C++
Доброго времени суток! Столкнулся с проблемой утечки памяти! Будь у меня маленькая программка, выловил бы легко, но в 2000 строк кода все...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
27.07.2006, 21:50
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru