【问题标题】:What is a CPU intensive task in Node.js?Node.js 中的 CPU 密集型任务是什么?
【发布时间】:2012-08-08 14:39:17
【问题描述】:

我是 Node.js 的新手,对于这个看起来像菜鸟的问题我感到很抱歉,但如果你的建议让我感觉更好。

我想我掌握了 Node.js 的大部分基础知识。我知道它是单线程的,因此所有 I/O 作业都是异步的,以免阻塞事件循环。

我也明白,由于这种单线程特性,Node.js 不太适合会阻塞事件循环的 CPU 密集型任务。

我的问题很简单:我正在开发一个 websocket 应用程序,对于大多数请求,我必须执行一个带有一些计算的循环。根据我的测试,这个循环可能需要 30 到 80 毫秒才能完成。我应该将其视为 CPU 密集型任务吗? (如果是,我想我应该尝试将其委​​托给子进程或使用 process.nextTick 将计算分成几个部分)。

【问题讨论】:

  • 不知道是不是CPU密集型,但是如果你想要更好的性能,那么你可以考虑写C/C++插件。
  • 您还应该考虑您期望处理的并发用户数。 10 个用户的 30 到 80 毫秒可能没​​什么大不了的,但对于成千上万的用户来说,这就是另一回事了。

标签: node.js


【解决方案1】:

这实际上取决于您正在寻找什么样的 QOS。 我会说对于个人项目来说这很好。例如,如果您将 websockets 用于游戏,这可能是杀手锏。

模块cluster 可以用来解决这个问题。这是更多的工作,但该模块使获取进程集群和它们之间的通信尽可能容易。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-02
    • 1970-01-01
    • 2013-07-31
    • 2020-06-16
    • 2014-08-03
    • 1970-01-01
    • 2018-08-02
    • 2011-03-30
    相关资源
    最近更新 更多