Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Чем больше работает, тем больше съедает памяти, как избавиться от этого 
:(
    Опции темы
DmitryHT
Дата 26.9.2007, 01:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Всем, у кого сейчас ночь, доброй ночи, остальным - привет! 
При парсинге новых прокси с каждым запущеным потоком растет увеличение кол-ва памяти (из-за чего?), с которой работает программа.
Потоки запускаются с очисткой памяти по завершению потока potok.FreeOnTerminate(true); 



Почему так может быть?

ВОПРОС РЕШЕН!  smile 

Это сообщение отредактировал(а) DmitryHT - 27.9.2007, 12:28
PM MAIL   Вверх
aktuba
Дата 26.9.2007, 04:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


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

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



Цитата

п.с. память, выделенная локальным переменным в процедурах потоков, я так понимаю, высвобождается вместе с потоком?


Не факт...

Цитата

п.п.с. влияет ли как-то на это конструкция 
  AppendFile(file_p);
  Writeln(file_p,proxy);
  CloseFile(file_p) 


Теоретически, нет...


--------------------
user posted image
PM MAIL WWW Skype   Вверх
Felan
Дата 26.9.2007, 08:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(DmitryHT @  26.9.2007,  03:26 Найти цитируемый пост)
п.с. память, выделенная локальным переменным в процедурах потоков, я так понимаю, высвобождается вместе с потоком?

Да, если это не ссылки на динамически созданные объекты.

Где-то ты не освобождаешь память... Внимательно проверь конструкторы и деструкторы. И посмотри блоки try..except. Если в таком блоке создается временный локальный объект - всегда нужно удалять его в finally.





--------------------
// Любая сложная система - это темный лес. Каждый в этом лесу протаптывает свои тропинки, по ним и бегает. Лишь изредка, сходя с них, мы находим много интересного, а порою и страшного.
PM MAIL WWW ICQ   Вверх
DmitryHT
Дата 26.9.2007, 10:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата

И посмотри блоки try..except. Если в таком блоке создается временный локальный объект - всегда нужно удалять его в finally.


спасибо! Сейчас пересмотрю этот вариант.
PM MAIL   Вверх
DmitryHT
Дата 26.9.2007, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Up: для наглядности добавил выдержки из кода (см. первый пост)  smile 
PM MAIL   Вверх
VICTAR
Дата 26.9.2007, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



DmitryHT, где главный код запускающий потоки? ты два раза привел одну и туже процедуру tPotok.ParseProxy....

Добавлено через 1 минуту и 32 секунды
а где regex.Free?
PM MAIL   Вверх
DmitryHT
Дата 26.9.2007, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата

 где главный код запускающий потоки? ты два раза привел одну и туже процедуру


спасибо, не усмотрел.
Исправил первый пост.


Ок Regex.Free добавлю, 
но ведь память для regex итак должна высвобождаться вместе с завершением потока...
PM MAIL   Вверх
aktuba
Дата 26.9.2007, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


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

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



Цитата

но ведь память для regex итак должна высвобождаться вместе с завершением потока... 


Память, выделяемая в нем, будет освобождена, но сам объект так и останется в памяти.
На будущее, возьми за привычку - все что создал, необходимо уничтожить. Кстати, есть сомнения по поводу использования Destroy...


--------------------
user posted image
PM MAIL WWW Skype   Вверх
bems
Дата 26.9.2007, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

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



TRegExpr созданый в tPotok.ParseProxy где освобождается?

Добавлено через 1 минуту и 7 секунд
сори, не дочитал топик...


--------------------
Обижено школьников: 8
PM MAIL   Вверх
DmitryHT
Дата 26.9.2007, 18:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(aktuba @  26.9.2007,  15:05 Найти цитируемый пост)
Кстати, есть сомнения по поводу использования Destroy


а какого рода тут подозрения? Мне все варианты интересны!
Спасиб.
PM MAIL   Вверх
aktuba
Дата 26.9.2007, 21:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


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

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



Цитата

а какого рода тут подозрения?


Тем, что если объекта нет, Destroy вызовет ошибку. Используй Free.


--------------------
user posted image
PM MAIL WWW Skype   Вверх
DmitryHT
Дата 27.9.2007, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Aktuba, большое спасибо за то, что отвечаешь "на все" мои вопросы! 
Спасибо также всем остальным кто принял участие.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




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


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

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