Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.12.12;
Скачать: CL | DM;

Вниз

Кушается память при отправке большой порции данных.   Найти похожие ветки 

 
Fredericco ©   (2003-10-15 19:10) [0]

TClientSocket/TServerSocket.
Проверяю просто: кидаю обоих на форму, коннекчу клиента к серверу. И делаю так
procedure TForm1.Button1Click(Sender: TObject);
var
tmp:string;
begin
tmp:=StringOfChar("A",12500000);
cs.Socket.SendBuf(Pointer(tmp)^,Length(tmp));
SetLength(tmp,0);
end;

В таймере проверяю свободную память так (интервал 500):
procedure TForm1.Timer1Timer(Sender: TObject);
var
si:TMemoryStatus;
f:Currency;
begin
GlobalMemoryStatus(si);
f:=Round(((si.dwAvailPhys/1024)/1024)*100)/100;
Caption:=FloatToStr(f)+" Mb ";
end;

При нажатии на буттон память уменьшается ~ на 12500000.
Может GlobalMemoryStatus в ХР не те цифирки выдает?
При повторных нажатиях память также уменьшается и на ту же величину.


 
Fredericco ©   (2003-10-15 19:12) [1]

Немного наврал. При повторном нажатии память на месте.


 
Digitman ©   (2003-10-16 08:16) [2]


> При нажатии на буттон память уменьшается ~ на 12500000.


> При повторном нажатии память на месте


не вижу никаких ненормальностей в этом
а что иное ты ожидал увидеть ?


 
Fredericco ©   (2003-10-16 16:43) [3]

Ну что бы не кушалось :-)
А почему это нормально?
Ладно мы память выделили Tmp, отправили так ведь освабождать-то надо.


 
savva ©   (2003-10-17 12:58) [4]


> так ведь освабождать-то надо

а ты не задумывался почему в метод SendBuf параметр Buf передается как изменяемая переменная (var)?
Для подробностей смотри исходники метода SendBuf


 
Digitman ©   (2003-10-17 13:26) [5]


> так ведь освабождать-то надо.


угу) ... если менеждер памяти будет действовать так как ты предполагаешь, любой умник за 6 секунд поставит систему раком, многократно запрашивая и тут же отдавая (с периодом в сотые доли секунды) блоки памяти размером в десятки-сотни мегабайт... а система при этом только и будет заниматься свопингом)


 
Fredericco ©   (2003-10-17 13:47) [6]

2 Digitman © (17.10.03 13:26) [5]
Понял.


 
Fredericco ©   (2003-10-17 14:00) [7]


> savva © (17.10.03 12:58) [4]

function send; external winsocket name "send";



Страницы: 1 вся ветка

Текущий архив: 2003.12.12;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.016 c
7-36872
Rentgen
2003-10-03 07:31
2003.12.12
Компонент HotKey.


1-36720
Chery
2003-12-01 12:56
2003.12.12
Подключить к форме хранимой в Dll таблицу, Table - на глав. форме


8-36773
Sergeys
2003-08-16 00:39
2003.12.12
ListBox + Картинка + Список


14-36841
don-do
2003-11-19 14:56
2003.12.12
Господа, я тут ссылку нашел, крутой debuger, сходите, не пожалеет


1-36643
loki128
2003-12-01 08:57
2003.12.12
Утилита составления графического алгоритма программы