Г
Горшочек варит
@gorshochekvarit2.4K подп.
2.8Kпросмотров
15 августа 2025 г.
Score: 3.0K
Speeding up the JavaScript ecosystem - Semver Несколько дней назад вышла очередная статья от Marvin Hagemeister из его серии про ускорение экосистемы JavaScript, которую он ведёт аж с 2022 года. Наткнулся на неё случайно: просматривал, кто недавно лайкнул CPUpro на GitHub, увидел Marvin'а, зашёл в его профиль, оказался на его сайте — и там обнаружил совсем свежую публикацию. Решил почитать и уже в первом абзаце увидел ссылку на cpupro, что приятно удивило 😊 Если честно, я ожидал, что автор покажет как использовал CPUpro для анализа, но в статье нашлось лишь два похожих скриншота из CPUpro — топ по пакетам (до и после). Кроме того, Marvin применил инструментирование, чтобы определить горячие точки в коде. Не имею ничего против инструментирования — сам нередко использую. Да и это позволило ему собрать бенчмарк для дальнейших экспериментов. Но с CPUpro и V8 log в таких случаях необходимость в инструментировании часто отпадает. Я предположил, что Marvin использовал .cpuprofile и пользовался ограниченным набором возможностей. Я также решил повторить эксперимент из статьи: склонировал Preact и записал V8 log на npm install. Результат у меня получился иной: влияние semver оказалось в 2–3 раза меньше (в относительных величинах), чем в статье. «Возможно, я что-то делаю не так» — подумал я. Зато при анализе результатов профилирования обнаружил несколько багов в CPUpro, исправил их — так что, в любом случае, упражнение оказалось не бесполезным. Еще я заметил пару опечаток в статье (вместо cpupro было cpuprof :), и одно число было неверно перенесено со скриншота). В общем, поводов написать письмо набралось достаточно, и я написал. Через пару дней получил ответ. Моё предположение подтвердилось: Marvin действительно использовал .cpuprofile и не знал, что в CPUpro есть поддержка V8 log. Пообещал изучить и, возможно, написать об этом в следующей статье. Будем ждать. Что касается результатов профилирования, он повторил замеры, и у него они тоже оказались ниже, чем описанные в статье. Это его озадачило — он предположил, что мог профилировать в энергосберегающем режиме (такое бывает, сам сталкивался). Как бы то ни было, это не сильно что-то меняет — статья хорошая и полезная (как и другие из этой серии). Конкретные цифры не так важны, как используемые подходы и практики. Всё никак на складывалось написать про статью, но тут Никита в своём канале (mefody.dev) написал про нее. Спасибо ему, напомнил 🙂
2.8K
просмотров
2433
символов
Да
эмодзи
Нет
медиа

Другие посты @gorshochekvarit

Все посты канала →
Speeding up the JavaScript ecosystem - Semver Несколько дней — @gorshochekvarit | PostSniper