![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
![]() Суть проблемы проста, после уничтожения обьекта сабжевого класса память освобождается не полностью
простой пример для наглядности Код:
procedure TForm1.Button1Click(Sender: TObject); var S: TClientSocket; begin S := TClientSocket.Create(nil); S.Address := '127.0.0.1'; S.Port := 0; //любой открытый порт S.Open; S.Close; S.Free; end; при каждом вызове прибавляется ~4 kb иcпользуемой памяти как быть? =\ Последний раз редактировалось qip, 05.08.2008 в 20:25. |
#2
|
|||
|
|||
![]() 1. Переход на Indy
2. Проверь, а может это просто менеджер памяти еще не отдал ее (имеет он такую привычку - не сразу отдавать выделенную память). Попробуй свернуть приклад, а потом развернуть и посмотреть что с выделенной памятью. |
#3
|
||||
|
||||
![]() Переход на Indy не выход, во всяком случае не самый оптимальный вариант.
Что касаемо памяти, то к сожелению забыл указать, что я говорил про виртуальную память, т.к. с физической всё в порядке, а вот в виртуальной остаются те злосчастные 4 kb. |
#4
|
|||
|
|||
![]() Ну так точно винда просто еще не освободила ее (т.е. не отписала от процесса, т.к. уже "вымыла" в своп).
А чем Indy-то не годится? Только скачай и поставь 10-ку. |