Skip to content

貌似Node.js要引入worker了? #135

@smallnewer

Description

@smallnewer

大概会让napa.js好尴尬。很久之前看到V8里的Worker实现终于要落地到Node.js了。
我一直觉得,Node.js的问题不是在CPU利用上,而是多核的利用。虽然worker可以利用多核,但也只是计算方面的利用,并不能来提升IO吞吐量(这里说的前提都是单进程)。
而服务端不仅要能把CPU计算吃完,还要能把IO吞吐量轻易跑满。
在服务端用Node.js主要遇到的问题是:

  1. JS在实现业务逻辑时,一不小心就会丢失JIT回到慢速模式。这会拉低IO吞吐量(你用多核也高不了多少,慢的可是N倍,你确定要花N倍硬件的钱来弥补这个损失么?)
  2. Node.js的IO只能吃满一个核,引入worker对吞吐量没帮助。你该用cluster还是得用。
    换言之,worker应对的场景只是多核CPU计算,用来搞个快排啥的。但说实话,上C++搞个addon才是明显的正路,都不用特别优化都比你开两三个worker快,人家吃一个cpu,你用JS吃3个。算算成本。再一个现在wasm快速发展,用Rust写也不错。

Node.js在服务端占有率已经走到天花板了。看看隔壁的Golang,同时代的产品,现在在国内服务端风生水起,看招聘就知道需求量了。并且仍然在快速蚕食PHP JAVA的市场。

话说最近用Node.js写运维工具写的有点上瘾(我用的还是没有async的版本😂)。然而和python比起来还是没啥优势,所以也就到此为止了。它的定位就是:帮助广大前端人员进入其他领域的跳板。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions