这是我的 noflo 组件,HelloWorld.js - 它只接收传入的字符串并将其发送出去。
const noflo = require('noflo');
exports.getComponent = () => {
if (!input.hasData('in')) {
return;
}
const c = new noflo.Component();
c.inPorts.add('in', { datatype: 'string' });
c.outPorts.add('out', { datatype: 'string' });
c.process((input, output) => {
const data = input.getData('in');
output.sendDone({
out: data,
});
});
return c;
};
我从NoFlo 文档入门中构建了示例图,它工作得很好。但是现在尝试我自己的组件(见上文),当我尝试运行一个使用它的图表时,我的系统只是旋转,消耗了大约 4GB 的内存,然后吐出:
FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
我已经阅读了你找到的关于这个问题的建议(所有的 NODE_OPTIONS,内存限制的东西)。事实上,我在我的 Linux 系统上遇到了这个“堆”问题,然后这个建议就奏效了。但是现在我在我的 2 个 Windows 系统和我的 Linux 系统上都收到了上述错误(仅针对这个 noflo 项目)。
我是否在组件中编码错误?这是我的图表,HelloWorld.fbp:
Hello(HelloWorld) OUT -> IN Display(core/Output)
'say it' -> IN Hello
还有我的 npm 脚本:
"flo-hello": "noflo-nodejs --graph graphs/HelloWorld.fbp --batch --debug",