|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Andrey Sapozhnikov 2:5020/400 31 May 2005 04:34:59 To : Kostya Lesnichenko Subject : Re: garbage collector --------------------------------------------------------------------------------
Kostya Lesnichenko пишет:
> Здравствуйте All,
>
> Как я понял GC не освобождает системную память. Просто чистит ранее
> выделенную память от рудиментов. А потом снова ее использует.
> Поправьте, если не прав.
>
> Есть ли такое слово, которое заставит его очистить место?
Это нереально практически в любой программе, не только в интерпретаторе
Перл. Дело в том, что к моменту когда вы хотите освободить память она
уже сегментирована. В большинстве ОС процесс не запрашивает память у
ядра кусочками, а просит подвинуть границу сегмента данных. Теоретически
ее можно подвинуть и в сторону уменьшения, но только если освобожденый
кусок находится в самом конце, а это нереально зная что внутри сложно
программы постоянно аллокируются и освобождаются многие сотни больших
и маленьких, временных и не очень, структур данных. Да и смысла
освобождать системную память немного, она же виртуальная, т.е. дешевый
ресурс. Умные аллокаторы могут еще и пометить освободившиеся страницы
как zero-fill-on-demand ( скажем в POSIX.1b с помощью
madvise(start, len, MADV_DONTNEED) ) чтоб сэкономить кусочек свопа,
но особого эффекта от этого ждать не стоит.
--
Андрей
--- ifmail v.2.15dev5.3
* Origin: Demos online service (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/6577e7da697a.html, оценка из 5, голосов 10
|