诸如“密集型”或“昂贵”之类的术语是相对的,并不是什么活动总是占用大量cpu的。一般来说,不是I / O的都是cpu。而且I / O在node.js中是异步的,所以不是问题。因此,除了I / O昂贵之外,我们一无所有。
您选择一般模式的方法是明智的。排序,搜索甚至算法通常都受cpu限制。当然,您无法消除cpu使用率,但是如果您可以对数据库进行排序而不是对应用程序代码进行排序,则可能会更好。
我也会注意大型循环。一个不会触发任何异步事件的循环是一个瓶颈。当然,不能完全避免循环。它们是编程中不可或缺的事实。如果循环很短,那就没问题了。如果找到运行10,000次的循环,则可能需要考虑使用setTimeout,process.nextTick或单独的节点进程将其分解。
10,000人被任意挑选。这取决于循环的作用。您的里程可能会有所不同。