Size: a a a

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

2020 October 23

AK

Andrey Konovalov in Беседка Perl-групп
basiliscos
мгновенно, на арену, афаик. Но вообще это детали реализации, которые не очень-то важны/интересны.
Ну не совсем, если возвращает на арену не сразу и даже не гарантированно при следующем выделении памяти, то по идее размер процесса может быть не равен максимально выделенному куску памяти внутри. Т.е. процесс может разбухать в таком случае.
Хотя по факту не наблюдал ничего подобного.
источник

b

basiliscos in Беседка Perl-групп
да, разбухает со временем. Память фрагментируется, и в систему не возвращается
источник

b

basiliscos in Беседка Perl-групп
но в 99.9999% это не проблема
источник

SZ

Sergey Zhmylove in Беседка Perl-групп
Andrey Konovalov
Кучу освобождает же не перловый DESTROY или о чём речь?
Перл никогда не отдаёт память системе
источник

W

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

YM

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

SZ

Sergey Zhmylove in Беседка Perl-групп
Warstone
Есть патч чтобы отдавал, но он работает через жопу.
Ага, есть, но он так же полезен, как и отключение рандомизации порядка ключей в хешах :)
источник

SZ

Sergey Zhmylove in Беседка Perl-групп
Yuri Myasoedov
там какой-то кастомный аллокатор памяти?
Ну конечно!
источник

SZ

Sergey Zhmylove in Беседка Perl-групп
Yuri Myasoedov
там какой-то кастомный аллокатор памяти?
А ты думал, под каждый скаляр зовется malloc/free? :P
источник

W

Warstone in Беседка Perl-групп
Yuri Myasoedov
там какой-то кастомный аллокатор памяти?
Есть патч. Надо будет пересобрать Перл. Работает как говно из-за метода работы с памятью.
источник

YM

Yuri Myasoedov in Беседка Perl-групп
Warstone
Есть патч. Надо будет пересобрать Перл. Работает как говно из-за метода работы с памятью.
мне кажется, что если возникает необходимость возвращать память ОС, но правильный путь — это fork(). короче плодим воркеров, которые по результату работы просто завершаются
источник

W

Warstone in Беседка Perl-групп
Yuri Myasoedov
мне кажется, что если возникает необходимость возвращать память ОС, но правильный путь — это fork(). короче плодим воркеров, которые по результату работы просто завершаются
Э-э-э... Если вы память уже засрали. то форк не поможет
источник

YM

Yuri Myasoedov in Беседка Perl-групп
зачем засрали. должен быть мастер (main? :) ) процесс, который ничего не съел, а он уже запускает в свою очередь через fork() воркеров, которые могут отъесть память конечно, но после завершения гарантированно отдают всю память обратно ОС
источник

W

Warstone in Беседка Perl-групп
ммм... Так-то да... Только если воркеры работают месяцами?
источник

YM

Yuri Myasoedov in Беседка Perl-групп
перезапускать можно. мастер в принципе может отслеживать своих детей. если они слишком сильно зажрались, то принудительно их через IPC (сигналы например) прекращать работу
источник

W

Warstone in Беседка Perl-групп
Эм... Нельзя.
источник

DF

Denis F in Беседка Perl-групп
Yuri Myasoedov
перезапускать можно. мастер в принципе может отслеживать своих детей. если они слишком сильно зажрались, то принудительно их через IPC (сигналы например) прекращать работу
Может просто фиксить утечки памяти?:)
источник

YM

Yuri Myasoedov in Беседка Perl-групп
Denis F
Может просто фиксить утечки памяти?:)
там не в утечках дело, а в том что у тебя куча разрастается
источник

YM

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

W

Warstone in Беседка Perl-групп
Yuri Myasoedov
там не в утечках дело, а в том что у тебя куча разрастается
Если нету утечек - куча не растет
источник