因此,我正在尝试进行测试,以查看多少WebWorker线程(https://github.com/audreyt/node-webworker-threads)可以在多核系统中使用NodeJS改善CPU密集型任务。

我实际上是在分配有单个核心的虚拟机上工作的,但是当我在具有4个核心的家用虚拟机上尝试该虚拟机时,在15-20个请求后出现了分段错误。

我的项目在https://github.com/WakeskaterX/NodeThreading.git

我尝试消除碎片以查看为什么得到SegFault,但是即使仅返回静态数字也会在15-20次请求后引发SegFault。

对于loadtest命令,我正在运行:

 loadtest -c 4 -t 20 http://localhost:3030/fib?num=30




当它同步计算斐波那契数列时,它运行得很好,但是一旦遇到网络工作者,它就会出现分段故障核心转储。也许这与后端的WebWorker-Threads代码有关,但是我主要想知道为什么会发生这种情况,以及如何进一步调试或修复它,以便可以在nodejs中测试后台线程。

最佳答案

这是一个可变的生存期问题—通常,需要将长时间运行的工作人员分配给对象,而不是词汇变量。范围退出时,后者将被垃圾回收。

有关解决此问题的请求请求,请参见https://github.com/WakeskaterX/NodeThreading/pull/1

08-19 09:01