|
|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Andrey Sapozhnikov 2:5020/400 24 Oct 2003 18:13:44 To : Sergey Skvortsov Subject : Re: ModPerl vs FastPerl vs PHP -------------------------------------------------------------------------------- Sergey Skvortsov wrote: > Andrey Sapozhnikov пишет: > AS> Sergey Skvortsov wrote: > AS>> Рвать напополам пулы будет неэффективно с точки > AS>> зрения памяти - поддержание двух пулов SV это > AS>> знаете ли... > > AS> Какая разница, один длинный или три коротких? > > в возможных потерях, когда в одном пуле дофига > свободных SV - а в другом они кончились и мы > запрашиваем память. > > AS>> Опять же, придется в SV во флаги добавить из > AS>> какого пула он был выделен - что означает лишнюю > AS>> проверку при достижении REFCNT==0 и > освобождении SV. > > AS> Зачем? free разберется из какой цепочки блок. > > какое такое free? SV не освобождаются вообще. они > просто при del_SV() прилинковываются в пул > (список) свободных SV, чтобы не вызывать лишний > раз malloc. > > кажется у нас разный денотат слова "пул". > я подразумеваю список свободных структур, не > возвращаемый по free после использования Я в данном случае имел ввиду пулы из которых malloc выделяет память. Что касается утилизации и переиспользования SV, то тут даже не придется держать несколько цепочек. Фактически переиспользоваться могут только SV из одного пула, того который STDPOOL. Смысл остальных пулов как раз и заключается в том, что структуры там живут (почти всегда) неизменными до завершения программы. Короткоживущим объектам там делать нечего. > AS>> Реаллокация же неэффективна еще сильнее. > > AS> Эта мера для исключительно для массивов. Они > способны > AS> пожрать много памяти структурами SV и весьма > вероятно, > AS> что refcount у них изменяться не будет. У > "обычных" > AS> скаляров (т.е. не элементов массивов и хэшей) > достаточно > AS> только строковые значения (PV) сносить в > SHARED pool. > AS> Ибо самих переменных (структур SV) не так > много, если > AS> только кто-то не загаживает пространство имен > преднамеренно. > > SV - это самая используемая структура. > при вызове фукнций, в операциях и т.д. Речь шла только о SV принадлежащих именованым переменным (GV), local scope и т.д. Все временные SV нас не интересуют в данном случае. - Андрей --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по:
Архивное /ru.cgi.perl/65771c3c30ba.html, оценка из 5, голосов 10
|