Size: a a a

Беседка Perl-групп

2020 October 23

W

Warstone in Беседка Perl-групп
Yuri Myasoedov
даже если на си вроде free() делаешь, память ОС не вернётся
О как! А пацаны-то не в курсе.
источник

b

basiliscos in Беседка Perl-групп
Warstone
О как! А пацаны-то не в курсе.
в теории может быть так, т.к. malloc/free - это не сисколы, а обычные ф-ции glibc. У ядра, по идее, glibc уже страницами запрашивает, а уже конткретному вызывающему нарезает на кусочки, хоть побайтово.
источник

YM

Yuri Myasoedov in Беседка Perl-групп
free просто помечает, что данный кусок можно снова взять из кучи
источник

YM

Yuri Myasoedov in Беседка Perl-групп
насколько я помню
источник

W

Warstone in Беседка Perl-групп
basiliscos
в теории может быть так, т.к. malloc/free - это не сисколы, а обычные ф-ции glibc. У ядра, по идее, glibc уже страницами запрашивает, а уже конткретному вызывающему нарезает на кусочки, хоть побайтово.
Это-то понятно...
источник

W

Warstone in Беседка Perl-групп
Yuri Myasoedov
free просто помечает, что данный кусок можно снова взять из кучи
Вы путаете теплое с мягким или недоговариваете... Куча - это системная память которая доступна всем... Скорее всего вы про локальную кучу или кучу процесса.
источник

YM

Yuri Myasoedov in Беседка Perl-групп
про кучу процесса
источник

YM

Yuri Myasoedov in Беседка Perl-групп
в GNU libc по крайней мере не возвращало вроде
источник

DF

Denis F in Беседка Perl-групп
Блин, в убунте явно диверсанты работают какие-то. Только объявили о выпуске 20.10, как у меня сразу кеды начали глючить по черному -_-
источник

SZ

Sergey Zhmylove in Беседка Perl-групп
Yuri Myasoedov
даже если на си вроде free() делаешь, память ОС не вернётся
Это зависит
источник

YM

Yuri Myasoedov in Беседка Perl-групп
Sergey Zhmylove
Это зависит
да, я не совсем правильно написал. зависит от реализации
источник

SZ

Sergey Zhmylove in Беседка Perl-групп
Yuri Myasoedov
free просто помечает, что данный кусок можно снова взять из кучи
Только на уровне либц
источник

YM

Yuri Myasoedov in Беседка Perl-групп
если надо принудительно вернуть неиспользуемые страницы памяти обратно, можно дёрнуть  malloc_trim() в glibc
источник

SZ

Sergey Zhmylove in Беседка Perl-групп
Warstone
Вы путаете теплое с мягким или недоговариваете... Куча - это системная память которая доступна всем... Скорее всего вы про локальную кучу или кучу процесса.
Куча -- это пустое, не аллоцированное место между data сегментом и стеком и маллок выделяет на куче с помощью brk/sbrk
источник

SZ

Sergey Zhmylove in Беседка Perl-групп
А, и она отдельная в каждом вирт. Адресном пространстве
источник

SZ

Sergey Zhmylove in Беседка Perl-групп
Denis F
Блин, в убунте явно диверсанты работают какие-то. Только объявили о выпуске 20.10, как у меня сразу кеды начали глючить по черному -_-
Так там же apple patch
источник

SZ

Sergey Zhmylove in Беседка Perl-групп
Вышла новая версия -- старые начинают лагать
источник

SZ

Sergey Zhmylove in Беседка Perl-групп
Yuri Myasoedov
да, я не совсем правильно написал. зависит от реализации
Нет, либсишный аллокатор одинаково работает.
Суть в объеме памяти и в последовательности free
источник

SZ

Sergey Zhmylove in Беседка Perl-групп
Если выделить гиг, а потом метр, то освобождение гига не вернет ничего в ос
источник

SZ

Sergey Zhmylove in Беседка Perl-групп
Впрочем, аллокатор очень легко поменять на ммаповый и тогда оно будет возвращать сразу
источник