Угу, но если посмотришь на код оригинальный этого там не было. Я это писал, ибо расчитывал использовать в другом виде. Потом только в голову пришло вкорячить в потроха nginx (да-да, изначально это грузилось через ld_preload).
Вы предлагаете хачить системный аллокатор? Или делать его через preload? Первое опасно, второе не удобно для отладки (я не уверен что он всегда будет запускаться с этм кодом, а так, этот код, в него жестово вставлен).
Далее, я покатаюсь, с недельку, на этих аллокаторах, пойму какой из них мне понравился больше, и начну их сильно хачить. И в итоге получу *очень* сильно специфичный аллокатор для nginx, который использую.
А не сделал я его в таком формате, по простой прчини, мне так удобнее запускать nginx ;)
Да, и задачи ускорять php, perl и прочее не было. Еще учитывать надо что это будет хорошо на той стратегии по использованию памяти, какую выбирает nginx.
Аллокатором (от английского to allocate – «размещать», «выделять») называется совокупность механизмов, ответственная за распределение памяти и реализующая операции выделения, освобождения и (опционально) изменения размеров ранее выделенных блоков.
Лично мне удобнее поддерживать свой_системный_аллокатор внутри проекта для которого я его точу. Что бы не мешать всей остальной системе, ку?
Далее, я покатаюсь, с недельку, на этих аллокаторах, пойму какой из них мне понравился больше, и начну их сильно хачить. И в итоге получу *очень* сильно специфичный аллокатор для nginx, который использую.
Так же прошу обратить внимание на update.
Выкладывать это отдельным постом?
Да, и задачи ускорять php, perl и прочее не было. Еще учитывать надо что это будет хорошо на той стратегии по использованию памяти, какую выбирает nginx.
/me рад что есть тут еще люди, ради которых стоит сюда писать.
2) я не знал про jemalloc, спасибо, пойду смотреть.
У меня задача ставилась внести в nginx под linux аллокатор на mmap/munmap, я взял первый попавшийся мне аллокатор (так получилось что из openbsd)
Я, собственно, и сделал так, что бы он в linux стал таким же хорошим.