Javascript 在不同进程之间共享Node.js环境?

Javascript 在不同进程之间共享Node.js环境?,javascript,ruby-on-rails,node.js,unix,v8,Javascript,Ruby On Rails,Node.js,Unix,V8,按照与rubygem相同的思路,您能否分叉一个节点进程,使其基本上成为当前环境的完整克隆 所谓“完全克隆”,我的意思是这个克隆的/子环境/进程可以重用现有的require.cache,这样子进程就不必承受再次需要相同模块的性能损失(有时是痛苦的)。比如说,require('lib-a')加载需要2秒钟。当您在子进程中调用require('lib-a')时,它是即时的(即使用require.cache或类似的东西),您是如何做到这一点的 这方面的一个用例是加快node express/connec

按照与rubygem相同的思路,您能否分叉一个节点进程,使其基本上成为当前环境的完整克隆

所谓“完全克隆”,我的意思是这个克隆的/子环境/进程可以重用现有的
require.cache
,这样子进程就不必承受再次需要相同模块的性能损失(有时是痛苦的)。比如说,
require('lib-a')
加载需要2秒钟。当您在子进程中调用
require('lib-a')
时,它是即时的(即使用
require.cache
或类似的东西),您是如何做到这一点的

这方面的一个用例是加快node express/connect HTTP服务器的启动时间。在更复杂的应用程序中,您可能需要大量的模块,有时需要一两秒钟的时间来要求所有模块(不是寻找关于如何延迟加载模块的信息,我也在进行优化,但它有其局限性)

相关的Spork代码如下:

我不确定它对诸如
Marshal.dump(yield,@child\u io)
Marshal.load(@child\u io)
之类的代码到底做了什么,但它看起来好像在以某种方式将整个环境复制到子进程中。通过这样做,Spork使您可以运行1个“main”Rails服务器,并“fork”它来运行测试,这样您就不必等待Rails服务器启动(有时是10秒)。如何在node中实现这一点?可能吗

更新


这被认为是一个错误吗?这将有助于搜索。

节点进程的寿命很长,因此我认为启动时间从来没有特别优先考虑过。这是node哲学的核心部分。话虽如此,您可能想看一看。它允许您启动子工作进程。它主要是为多核场景中的负载平衡而设计的,但可能对您有所帮助