Главная страница
    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.008 c
1-36711
smat
2003-12-02 15:30
2003.12.12
TRichEdit и Clipboard


3-36503
Danilas
2003-11-21 18:23
2003.12.12
Пишу такой текст: datamodule2.Query4.Fields


1-36682
Walrus
2003-12-02 21:59
2003.12.12
Шаблоны или что-то в этом духе


1-36659
K.L.
2003-11-30 18:09
2003.12.12
Проблема со SpeedButton ом


1-36719
Triny
2003-12-02 13:13
2003.12.12
Сохранение





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский