Насколько сильно снижается производительность node.js при запуске его через php функцию exec()?

Привет, хочу организовать серверный рендеринг на laravel+vue.js
Попался мне на глаза вот такой пакет https://github.com/spatie/laravel-server-side-rendering
В целом все удобно, но смущает один момент - пакет по сути при каждой загрузке запускает
<?php $result = exec('/usr/local/bin/node file.js')
то есть node.js не висит как сервер, а каждый раз запускается заново.
Подскажите, насколько сильно от этого может пострадать производительность? Какие подводные камни могут меня ожидать? Стоит ли вообще с этим связываться?
  • Вопрос задан
  • 1000 просмотров
Решения вопроса 1
bingo347
@bingo347
Бородатый программер
time node -p '(process.memoryUsage().heapUsed/1048576).toFixed(2)+"M"'
запускаем на своем сервере и любуемся оверхедом от запуска голой ноды...
у меня (нода v10.15.3) вот так:
3.71M

real	0m0,076s
user	0m0,064s
sys	0m0,012s


теперь давайте добавим сюда работу vue-ssr, который не просто так рекомендует прикручивать кэш...

вообщем думайте сами, насколько для Вас оверхед ждать 100-200мс и тратить по ~5МБ на заопрос
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
Xuxicheta
@Xuxicheta
инженер
exec запускает внешнюю программу. Производительность ноды никак не меняется.
Смотря как запускать рендер, но вообще нода не должна висеть как сервер, она рендерит все один раз и завершается, это просто скрипт.
Хотя если вы на каждый чих будете ререндерить весь проект, то это явно не лучшее решение.
А вот рендерить при изменении исходных данных это нормально.
Ответ написан
xPomaHx
@xPomaHx
1vs9
+0.1s в среднем, из за долгого пуска v8 а это дофига.
Ответ написан
Tantacula
@Tantacula
Ларавельщик, витающий в небесах.
А вы точно уверены, что этот процесс запускается каждый раз при запросе к серверу, а не компилируется один раз после изменений, как вьюхи ларавел?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
от 100 000 до 120 000 руб.
Instapay Москва
от 2 000 до 3 000 usd.
Lensoft.pro Санкт-Петербург
от 110 000 до 150 000 руб.