| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Чем больше работает, тем больше съедает памяти |
| Автор: DmitryHT 26.9.2007, 01:26 |
| Всем, у кого сейчас ночь, доброй ночи, остальным - привет! При парсинге новых прокси с каждым запущеным потоком растет увеличение кол-ва памяти (из-за чего?), с которой работает программа. Потоки запускаются с очисткой памяти по завершению потока potok.FreeOnTerminate(true); Почему так может быть? ВОПРОС РЕШЕН! |
| Автор: aktuba 26.9.2007, 04:53 | ||||
Не факт...
Теоретически, нет... |
| Автор: DmitryHT 26.9.2007, 10:30 | ||
спасибо! Сейчас пересмотрю этот вариант. |
| Автор: DmitryHT 26.9.2007, 11:49 |
| Up: для наглядности добавил выдержки из кода (см. первый пост) |
| Автор: VICTAR 26.9.2007, 14:09 |
| DmitryHT, где главный код запускающий потоки? ты два раза привел одну и туже процедуру tPotok.ParseProxy.... Добавлено через 1 минуту и 32 секунды а где regex.Free? |
| Автор: DmitryHT 26.9.2007, 14:18 | ||
спасибо, не усмотрел. Исправил первый пост. Ок Regex.Free добавлю, но ведь память для regex итак должна высвобождаться вместе с завершением потока... |
| Автор: aktuba 26.9.2007, 15:05 | ||
Память, выделяемая в нем, будет освобождена, но сам объект так и останется в памяти. На будущее, возьми за привычку - все что создал, необходимо уничтожить. Кстати, есть сомнения по поводу использования Destroy... |
| Автор: bems 26.9.2007, 15:47 |
| TRegExpr созданый в tPotok.ParseProxy где освобождается? Добавлено через 1 минуту и 7 секунд сори, не дочитал топик... |
| Автор: DmitryHT 26.9.2007, 18:20 |
а какого рода тут подозрения? Мне все варианты интересны! Спасиб. |
| Автор: aktuba 26.9.2007, 21:00 | ||
Тем, что если объекта нет, Destroy вызовет ошибку. Используй Free. |
| Автор: DmitryHT 27.9.2007, 10:44 |
| Aktuba, большое спасибо за то, что отвечаешь "на все" мои вопросы! Спасибо также всем остальным кто принял участие. |