Nodejs CPU密集型任务

时间:2019-07-18 18:24:55

标签: node.js

最近开始与节点一起发展并遇到了问题。我有一个原始银行的Web服务。基本上是原始文件(摄影资料)的集合。用户只需上传并下载。没有什么花哨。但是最近我想出了一个添加排序功能的想法,该功能取决于相机设置:快门速度,地理位置,fstop,颜色等。基本上,在上传原始文件后,我需要对其进行处理,这是非常繁重的文件,大约60-每个150 MB,通常用户上传3-4个文件。在不影响服务器性能的情况下处理大文件的最佳解决方案是什么。

2 个答案:

答案 0 :(得分:2)

如果您自己进行原始计算,则可以考虑使GPU加速。当前最好的库是https://gpu.rocks/。如果您还没有使服务器异步工作,甚至尝试使用节点的集群功能(最接近js的多线程)使其成为服务器。

答案 1 :(得分:1)

这里有很多事情要考虑:

  • 您是否有一个很好的工作队列解决方案来对工作进行优先级排序并将其散布到多个工作进程中?
  • 您是否利用WebWorkers之类的东西来使每个进程在多核系统上的生产率更高?
  • 您是否使用编译的库来帮助更快地处理图像?正如KolCrooks所说,GPU加速库是一项巨大的资产,因为它们可以将处理时间从几分钟缩短到几分之一秒。仅当您的服务器具有足够的GPU资源(很少有“内置” GPU)时,这才有意义。
  • 您如何存储和交换这些图像?您可以使用哪种网络拓扑? 10Gbit和1GBit可能在这里有很大的不同。