🔥

Тред (Андрей Печкуров)


Если вы хотите провести какой-то эксперимент с Node.js, то лучше сначала поискать в GH issues. Например, я как-то задался вопросом, что будет, если системный аллокатор заменить на jemalloc. И, конечно же, нашелся результат такого эксперимента: github.com/nodejs/node/is…

Если кто-то не знаком с jemalloc, то это аллокатор памяти, изначально реализованный для FreeBSD, а теперь активно поддерживаемый Facebook. Вот статья, описывающая его оригинальный дизайн (в текущей версии много изменилось, но суть та же): people.freebsd.org/~jasone/jemall…

В момент появления jemalloc хорошо выглядел в сравнении с libc аллокатором, но сейчас уже все не так однозначно. Что наглядно показывает GH issue с результатами эксперимента. Поэтому Node.js по-прежнему используется системный аллокатор.

Небольшой офтопик для знакомых с Java. Дизайн jemalloc был использован для off-heap аллокатора в сетевом фреймворке Netty. Да-да, вы не ослышались, в Netty есть off-heap аллокатор, написанный на Java.

Предлагаю на сегодня на этом остановиться. Завтра мы пообщаемся на тему инструментов анализа производительности и диагностики Node.js приложений.