【问题标题】:Does node.js have any performance advantage over client-side Javascript (vs. Chrome/V8)?node.js 与客户端 Javascript(与 Chrome/V8 相比)相比是否具有任何性能优势?
【发布时间】:2011-11-06 14:03:37
【问题描述】:

我目前正在编写一个执行图像处理的客户端 javascript 应用程序。它当前执行的一些操作在浏览器中运行速度很慢(大约需要 2-3 秒)

我希望实现的一个解决方案是让客户端通过 websocket 从服务器(websocket 而不是 AJAX,因为它需要显示实时信息等)接收结果信息,并让服务器完成繁重的工作图像处理

Node.js 是一个明显的候选者,也是用 Javascript 编写的——但我的第一个想法是不会有性能优势(我的客户端在 Chrome/V8 中运行,Node.js 也是 V8)——我是否正确在想这个?或者 Chrome 的 UI 是否需要在服务器端感受不到的客户端性能损失? (例如,Chrome 是否会在后台执行更多 UI 工作以保持 node.js 服务器不会花时间做的所有响应?)

node.js 会不会有任何性能优势,还是我最好研究 C 或 Java Web 套接字服务器来完成这项工作?

【问题讨论】:

  • 由于您已经用 JavaScript 编写了代码,我建议您尝试一下 Node.js 并自己看看。应该不需要那么大的努力。
  • @FelixKling 虽然正如你所说,它已经在 J​​avascript 中,但将现有代码拆分为使用 websockets 的适当客户端/服务器仍然需要相当多的工作 - 我肯定想找到一些性能信息.在做这样的事情之前
  • Node.js 不是执行繁重的图像处理的正确位置。但它是调用 ImageMagick 作为子进程的正确工具。

标签: javascript performance node.js v8


【解决方案1】:

如果您使用 javascript 进行图像处理,客户端可能是进行图像处理的更好地方。客户端的好处是您(大部分)拥有自己的处理器......如果您有 20 个人同时进行图像处理,他们将在 20 台机器上进行。

显然有些地方在服务器上进行图像处理更有意义,在这些情况下,考虑使用 javascript 以外的东西可能是明智之举。服务器上的 V8 不会比客户端运行得快很多,而且 node 并不是真正为 CPU 密集型任务而设计的。

可能有一些有趣的情况,您希望在客户端上做交互式的事情,然后在服务器上做最后的事情,在这种情况下,节点有很大的优势,因为您可以使用相同的代码。

【讨论】:

  • 虽然客户数量等对这个项目来说并不太重要(我知道听起来很奇怪)我认为这最接近回答我的问题,谢谢
【解决方案2】:

您不应根据唯一的 javascript 执行速度来确定您将在服务器或客户端上进行计算的位置。

更重要的是您估计的客户端(桌面或移动)、服务器容量以及估计的平均和峰值负载。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-28
    • 2023-03-11
    • 1970-01-01
    • 2019-01-30
    相关资源
    最近更新 更多