让我们说, 你有100个数据流。 每个持有约20.000个值..
每当一个流接收到新值时,该流就会对其过去的20.000个值进行一些基本的计算。没有真正繁重的计算,但仍然有一些像百分比等等。
我可以通过保持优化来很好地管理它。但最后,对于单个nodeJS线程来说,这变得越来越重,所以我希望将工作负载分配到多个进程。
唯一的问题是,我非常困难!
最好的方法是什么:
1:启动100个新节点实例,a.k'cluster' 但我认为这会导致巨大的开销,因为它们都具有相同的依赖性。为了做一些计算而做的很多。
2:创建永不死的child_processes并拥有自己的数据流实例,简单只给它“最新”记录。这个过程它自己保存所有过去的记录,而不是'主'过程。
3:只将计算放在一个单独的线程中,并不断地将其传递给20.000条记录进行计算......但这也对数据强度施加了巨大的压力我会说?
4:Webworkers .. ??
它必须是真正良好的性能,因为在程序的初始化时,所有100个流都获得5000个“历史记录”的记录以预先计算..当在单个线程中完成时,这需要大约30秒(读取:长)
谢谢!