可以在node.js中执行正确的fork()吗?

可以在node.js中执行正确的fork()吗?,node.js,Node.js,我的node.js应用程序需要几分钟来初始化和分配大量内存。我想在子进程中做一些工作 标准解决方案是使用群集模块,但这有两个缺点: 首先,所有初始化都在子进程中重复,浪费CPU内存 第二,我丢失了forking提供的巨大的写时拷贝内存节省(大部分分配的内存都是只读的) 我也看了一下,但它似乎也做了同样的事情——也就是说,它做了fork+exec,这对我没有帮助 标准的Unix方法是执行大量初始化,然后再执行fork()。可以使用node.js吗 有一些共享内存包可能对您有所帮助。根据您的需要

我的node.js应用程序需要几分钟来初始化和分配大量内存。我想在子进程中做一些工作

标准解决方案是使用群集模块,但这有两个缺点:

  • 首先,所有初始化都在子进程中重复,浪费CPU内存
  • 第二,我丢失了forking提供的巨大的写时拷贝内存节省(大部分分配的内存都是只读的)
我也看了一下,但它似乎也做了同样的事情——也就是说,它做了fork+exec,这对我没有帮助


标准的Unix方法是执行大量初始化,然后再执行fork()。可以使用node.js吗

有一些共享内存包可能对您有所帮助。根据您的需要,您也可以考虑编写一个本机扩展,在这里您可以使用fork或任何您想要的东西,同时将大部分应用程序保留在JS land中。谢谢。我知道我可以编写本机扩展,但如果有,我宁愿重用标准扩展——或者了解为什么没有标准扩展不是一个好主意。我有2G的键值对,需要跨72个不同的节点进程快速访问(即在内存中)。我写这个包是为了把数据放进共享内存,避免消耗144克的内核。它也会在瞬间初始化。不幸的是,我的初始化使用了第三方库,我无法控制它如何使用内存。有些共享内存包可能会对您有所帮助。根据您的需要,您也可以考虑编写一个本机扩展,在这里您可以使用fork或任何您想要的东西,同时将大部分应用程序保留在JS land中。谢谢。我知道我可以编写本机扩展,但如果有,我宁愿重用标准扩展——或者了解为什么没有标准扩展不是一个好主意。我有2G的键值对,需要跨72个不同的节点进程快速访问(即在内存中)。我写这个包是为了把数据放进共享内存,避免消耗144克的内核。它也会在瞬间初始化。不幸的是,我的初始化使用了第三方库,我无法控制它如何使用内存。