Главная страница


ru.cgi.perl

 
 - RU.CGI.PERL ------------------------------------------------------------------
 From : Igor Sysoev                          2:5020/400     23 Oct 2003  16:46:47
 To : Andrey Sapozhnikov
 Subject : Re: ModPerl vs FastPerl vs PHP
 -------------------------------------------------------------------------------- 
 
 Andrey Sapozhnikov <sapa@icb.chel.su> wrote:
 
 > Victor Wagner wrote:
 >> Konstantin Tokar <fido7@tokar.ru> wrote:
 >> 
 >> KT> Hаверно он об этом не думает больше того, что даёт операционная система. 
 >> 
 >> Операционная система дает весьма много. Она дает честный Copy on Write.
 >> 
 >> И то, что Perl мешает (неизменяемый) байткод с (изменяемыми) данными, не
 >> давая операционной системе возможности держать страницы с байткодом
 >> общими для всех процессов - проблемы перла, а не операционной системы.
 > 
 > Полагаю, что все же это проблемы, или точнее - следствие проблем
 > операционной системы. А именно стандартной функции malloc(3).
 > Для того, чтобы разделить изменяемые и неизменяемые данные
 > необходимо несколько пулов памяти и аллокаторы позволяющие
 > возвращать данные из раздельных пулов. И "умную" free(3),
 > которая бы знала к какому пулу принадлежит высвобождаемый
 > блок. Можно навернуть собственный аллокатор поверх штатного,
 > но это все равно криво, потому как придется запрашивать у
 > системы существенно больше памяти чем надо. Во первых за счет
 > лишних заголовков лишнего уровня, во вторых потому, что
 > malloc(3) возвращает блоки не выровненные по границе страницы.
 > Можно самим лепить аллокатор поверх brk/sbrk, но это
 > не портабельно и к тому же наверняка вылезет боком при
 > линковании с другими библиотеками и бинарниками. Станет
 > невозможно передавать указатели на память аллокированную
 > в одной части программы в другую, где она может
 > быть освобождена. К тому же многие аллокаторы не любят
 > сосуществовать с конкурентами (т.е. никто кроме них
 > не должен трогать brk/sbrk). Вот такие пироги.
 
 В правильных системах (например, во FreeBSD) 
 
 *) malloc() при запросах больше страницы всегда выделяет блок
 на границе странице и остаток в последней странице не используется;
 
 *) запросы меньше страницы выделяются из страниц, которые предварительно
 разбиты на меньшие куски фиксированного размера, например, 2 по 2K,
 4 по 1K, 8 по 512 и так далее, по-моему, до кусочков по 16 байт,
 то есть, для одного байта будет выделено 16;
 
 *) служебная информация хранится отдельно от выделенных блоков, то есть,
 если просим 32K, то получаем ровно 8 страниц.
 Отсюда следует, что аллокатор нескольких пулов поверх malloc()/free()
 не создаст существенных расходов памяти, особенно, если он тоже будет
 хранить служебную информацию отдельно от самих блоков.
 -- 
 Игорь Сысоев
 http://sysoev.ru
 --- ifmail v.2.15dev5
  * Origin: Rambler Office news site (2:5020/400)
 
 

Вернуться к списку тем, сортированных по:

 Тема:    Автор:    Дата:  
 ModPerl vs FastPerl vs PHP   Ilia Vinokurov   22 Oct 2003 10:44:25 
 Re: ModPerl vs FastPerl vs PHP   Victor Wagner   22 Oct 2003 11:48:52 
 Re: ModPerl vs FastPerl vs PHP   Ivan Frolcov   22 Oct 2003 12:30:55 
 Re: ModPerl vs FastPerl vs PHP   Victor Wagner   22 Oct 2003 12:52:35 
 Re: ModPerl vs FastPerl vs PHP   Ivan Frolcov   22 Oct 2003 13:26:16 
 Re: ModPerl vs FastPerl vs PHP   Konstantin Tokar   22 Oct 2003 15:46:10 
 Re: ModPerl vs FastPerl vs PHP   Victor Wagner   22 Oct 2003 15:55:17 
 Re: ModPerl vs FastPerl vs PHP   Konstantin Tokar   22 Oct 2003 16:49:51 
 Re: ModPerl vs FastPerl vs PHP   Andrey Sapozhnikov   22 Oct 2003 17:58:04 
 Re: ModPerl vs FastPerl vs PHP   Igor Sysoev   23 Oct 2003 16:46:47 
 Re: ModPerl vs FastPerl vs PHP   Andrey Sapozhnikov   23 Oct 2003 18:23:08 
 Re: ModPerl vs FastPerl vs PHP   Sergey Skvortsov   23 Oct 2003 19:41:52 
 Re: ModPerl vs FastPerl vs PHP   Igor Sysoev   23 Oct 2003 19:53:48 
 Re: ModPerl vs FastPerl vs PHP   Igor Sysoev   23 Oct 2003 19:50:45 
 Re: ModPerl vs FastPerl vs PHP   Sergey Skvortsov   23 Oct 2003 12:30:55 
 Re: ModPerl vs FastPerl vs PHP   Victor Wagner   23 Oct 2003 12:54:17 
 Re: ModPerl vs FastPerl vs PHP   Sergey Skvortsov   23 Oct 2003 14:44:38 
 Re: ModPerl vs FastPerl vs PHP   Victor Wagner   23 Oct 2003 15:08:57 
 Re: ModPerl vs FastPerl vs PHP   Sergey Skvortsov   23 Oct 2003 15:23:36 
 Re: ModPerl vs FastPerl vs PHP   Andrey Sapozhnikov   23 Oct 2003 15:34:17 
 Re: ModPerl vs FastPerl vs PHP   Sergey Skvortsov   23 Oct 2003 19:47:07 
 Re: ModPerl vs FastPerl vs PHP   Andrey Sapozhnikov   24 Oct 2003 00:51:11 
 Re: ModPerl vs FastPerl vs PHP   Sergey Skvortsov   24 Oct 2003 15:50:36 
 Re: ModPerl vs FastPerl vs PHP   Andrey Sapozhnikov   24 Oct 2003 18:13:44 
Архивное /ru.cgi.perl/293436bd387d2.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional