Имеет ли node.js какое-либо преимущество в производительности над клиентским Javascript (против Chrome/V8)?

В настоящее время я пишу приложение javascript на стороне клиента, которое выполняет манипуляции с изображениями. Некоторые из операций, которые он выполняет в настоящее время, довольно медленны для запуска в браузере (порядка 2-3 секунд).

Одним из решений, которое я планирую реализовать, является получение клиентом информации о результатах через websocket с сервера (websocket, а не AJAX, поскольку он должен отображать информацию в реальном времени и т.д.), и сервер делает тяжелый подъем манипуляция изображениями

Node.js - это очевидный кандидат, который также написан в Javascript. Однако я думал, что не будет никакого преимущества в производительности (моя клиентская сторона работает в Chrome/V8 и Node.js также V8) - Правильно ли я в этом думаю? Или пользовательский интерфейс Chrome требует потери производительности на клиенте, который не ощущается на стороне сервера? (например, Chrome делает больше пользовательского интерфейса в фоновом режиме, чтобы все реагировать на то, что сервер Node.js не тратит свое время?)

Будет ли у Node.js какое-либо преимущество в производительности, или мне лучше смотреть на серверы веб-сокетов C или Java, чтобы выполнить эту работу?

Ответ 1

Возможно, клиент - лучшее место для обработки изображений, если вы делаете это в javascript. Хорошая вещь о клиенте заключается в том, что у вас есть процессор (в основном) для себя... если у вас есть 20 человек, которые делают манипуляции с картинками сразу, они будут делать это на 20 машинах.

Очевидно, что есть некоторые места, где имеет смысл делать манипуляции с изображениями на сервере, и в этих случаях может быть разумным рассмотреть возможность использования вещей, отличных от javascript. V8 на сервере не будет работать намного быстрее, чем на клиенте, а node на самом деле не предназначен для интенсивных задач процессора.

Вероятно, есть некоторые интересные случаи, когда вы захотите сделать интерактивный материал на клиенте, а затем сделать окончательный материал на сервере, и в этом случае есть большое преимущество для node, поскольку вы можете использовать тот же код.

Ответ 2

Вы не должны определять, где будете выполнять вычисления на сервере или клиенте, исходя из единственной скорости выполнения javascript.

Гораздо важнее такие, как ваши расчетные клиенты (настольные или мобильные), емкость сервера и средняя средняя и максимальная нагрузка.