The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"OpenNews: Краткое сравнение ядер Solaris, Linux и FreeBSD."
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Подсказка: Доступны два режима работы форума: "Раскрыть нити" и "Свернуть нити".
. "Про работу с памятью" +/
Сообщение от _Nick_ (??), 18-Окт-05, 10:48 
>Можно вопросы по теме ?

нужно

>Как работает механизм осовобождения памяти в Linux ?
отлично

>Я так понимаю, что когда процесс вызывает free(), то реально память не
>становится доступной для других процессов, а остается как-бы за текущим,
>на случай если он опять запросит память.
да. Реально память НЕГАРАНТИРОВАННО освобождается. И БЕЗ "как-бы" остается  на считу у текущего процесса.
malloc() и free() - это функции glibc, которые управляют размещением памяти процесса.
А размер самой памяти (виртуальный) занимаемый процессом меняется системным вызовом brk(). Так malloc() с большой вероятностью увеличит размер процесса. А вот free() [практически] никогда не уменьшает его :)
А зачем? ведь, как ты сказал, через пару сек malloc() затребует памяти и опять двигать границу процесса - лишняя нагрузка на подсистему памяти.
А если процесс отхапал много и не пользует и не отдает - то свалится в своп при необходимости ;)

>Можно ли расчитать, сколько физической памяти жрет процесс, или только примерно смотря
>на RSS ?
смотри /proc/<PID>/status
точнее вряд ли тебе понядобится ;) а если и понадобится, то все равно эта цыфра может меняется несколько сот раз в секунду ;)))))))  тогда бери дебаггер в руки %)

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
OpenNews: Краткое сравнение ядер Solaris, Linux и FreeBSD., opennews, 17-Окт-05, 07:40  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру