Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2003.12.12;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.007 c
1-36628
man
2003-12-01 10:53
2003.12.12
установка real


14-36820
Igor_thief
2003-11-19 18:21
2003.12.12
Монитор


4-36883
Ascan_
2003-10-21 17:36
2003.12.12
Пункт меню Help справо, а не в одном ряду с остальными


4-36909
idr
2003-10-20 11:29
2003.12.12
Пуст ли буфер обмена?


1-36704
GreySerg
2003-12-02 15:34
2003.12.12
Как сделать hint в закладке (TTabSheet ) , когда наводишь курсор





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский