Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.02.2014, 19:50   #1
Usov
Форумчанин
 
Аватар для Usov
 
Регистрация: 29.09.2009
Сообщений: 228
По умолчанию Многопоточное приложение

Здравствуйте, написал много поточное приложение на D7 с использованием Synapse. Работает приложение на WinServer 2008 в 400 потоков (на входе список сайтов из 17 лямов - распознавалка ЦМС). В течении 20 часов приложение занимает в памяти приблизительно 130 Мб и не растет больше (смотрю по диспетчеру задач). А вот когда я смотрю на всю занятую память в диспетчере задач то с момента стара программы свободная память уменьшилась на 5Гб. Иду дальше, стопаю потоки, закрываю прогу, окно закрылось но в процессах продолжает прога висеть. После нескольких минут освобождается 5Гб оперативы. Кто может прокоментировать эту ситуацию?

Можете посоветовать какую библиотеку лучше использовать для скачки html чтоб корректно ресурсы освобождала и не жрала их?

p.s. Сначало делал прогу на Indy (10.2.3) но решил перейти на Synapse так как под индюками была сильно большая утечка памяти.
Usov вне форума Ответить с цитированием
Старый 08.02.2014, 19:53   #2
Кольша
Далеко не
Участник клуба
 
Аватар для Кольша
 
Регистрация: 11.08.2011
Сообщений: 1,512
По умолчанию

Скорей всего дело в вас, вы уничтожаете объекты? freeandnil? freeonterminate?
Кольша вне форума Ответить с цитированием
Старый 08.02.2014, 20:28   #3
Usov
Форумчанин
 
Аватар для Usov
 
Регистрация: 29.09.2009
Сообщений: 228
По умолчанию

Конечно, это я также тестил - отключил скроки кода с обращение в инет, и все гуд. А вот когда идет работа со скачкой страниц - ситуация мне не понравилась.
Usov вне форума Ответить с цитированием
Старый 10.02.2014, 12:17   #4
Mifody
Форумчанин
 
Регистрация: 12.02.2009
Сообщений: 215
По умолчанию

Цитата:
но в процессах продолжает прога висеть
значит потоки не стопнулись

насчет памяти, надо посмотреть на тему "утечек памяти", вообще, у меня, софт неделями пахал нормально, если корректно все использовать - то ничего "жрать" память не должно.
если уж совсем в параноидальном режиме делать, можно попробовать так.
1. есть главный поток, типа менеджера, он распределяет работу между "качальщиками", и контролирует общее кол-во потоков.
2. каждый поток для скачивания УРЛ и проверки на ЦМС создается по принципу 1 поток - 1 УРЛ.
примерно так, тогда, при корректном уничтожении "качальщиков" память расти не должна.

По большому счету, все равно сколько потоков. Если с одним потоком память не "исчезает", то и с 400 потоками будет Ок.
Помог с вопросом - тыркаем в весы, Вам не сложно, а мне приятно
Mifody вне форума Ответить с цитированием
Старый 10.02.2014, 12:30   #5
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Может вас это шокирует, но максимум потоков на 1 процесс - 60, при этом будет стабильно все работать.

Перепланируйте программу заново.

Вон, полноценные игры с тысячами AI работают всего в 5-20 потоков.

Цитата:
А вот когда идет работа со скачкой страниц - ситуация мне не понравилась.
Страница скачивается в память, а не на прямую, в ЖД.

Последний раз редактировалось Человек_Борща; 10.02.2014 в 12:36.
Человек_Борща вне форума Ответить с цитированием
Старый 10.02.2014, 17:32   #6
Usov
Форумчанин
 
Аватар для Usov
 
Регистрация: 29.09.2009
Сообщений: 228
По умолчанию

Спасибо всем ответившим. Проблема оказалась в переписанном мной методе уничтожения потока - забыл в конце деструктора Destroy написать inherited;
Usov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Многопоточное приложение в Делфи zokwild Помощь студентам 0 02.05.2012 21:55
многопоточное приложение Vistar Общие вопросы .NET 1 26.08.2011 16:25
многопоточное приложение favorite Общие вопросы Delphi 0 26.05.2011 19:47
Многопоточное приложение MaXoN66613 Помощь студентам 0 07.06.2010 12:36
Многопоточное приложение на Indy 2 Core2Duo Работа с сетью в Delphi 1 09.04.2009 11:42