Я пока вижу у медленных выполнений одно общее - очень много выполнений __GI___libc_malloc, _int_free, и _int_malloc.
Хм, интересно, непонятно. По идее библиотеке, использующейся в конце концов функцией
deflate_slow, должно хватать адресного пространства, чтобы выделить кусок нужного размера для своих нужд, даже если сборщик мусора в V8 лентяй, так как скорее всего у вас там 64-разрядная система и в них адресное пространство для каждого процесса просто гигантское. Пока память только выделяется, соответствующие страницы памяти вроде не должны загружаться в физическую память (что могло бы быть медленным, если она прям вся постоянно в ходу — это уже более вероятно, чем занять всё адресное пространство).
Притом опять большую часть полного времени занимает компиляция
deflate_slow… хм. У node нет какой-то опции, которая бы говорила, оставлять ли скомпилированный код до следующего запуска?