我正在使用meteor来制作报废引擎,我必须做一个HTTP GET请求,这会发给我一个xml,但这个xml大于400 ko。
我得到一个“内存不足”的例外。
result =Meteor.http.get 'http://SomeUrl.com'
致命错误:JS分配失败 - 处理内存不足
有一种方法可以增加变量的内存限制吗?
答案 0 :(得分:3)
如果您正在开发Windows
找到meteor.bat
/APPData/Local/.meteor/packages/meteor-tool/<build-tool-version>/
编辑调用node.exe的批处理文件的最后一行并更改为
"%~dp0\dev_bundle\bin\node.exe" --max-old-space-size=2048 "%~dp0\tools\main.js" %*
希望这有帮助
答案 1 :(得分:3)
我正在开发Windows并遇到同样的错误。在我的情况下,是由大量的console.log语句引起的。我禁用了日志语句,并再次正常工作。
答案 2 :(得分:3)
可以增加使用meteor生成的节点应用程序可用的内存。
我没有成功在meteor脚本中调用的节点实例中使用--max-old-space-size标志,也没有尝试按照gatolgaj
但是,设置环境变量NODE_OPTIONS="--max-old-space-size=8192"
对我有用。
我在这个帖子中看到了它:https://groups.google.com/forum/#!topic/meteor-talk/C5oVNqm16MY
答案 3 :(得分:1)
您需要增加服务器上的内存容量,例如:启用swap memory。要了解如何,假设你在Linux上,你可以f.ex.阅读DigitalOcean的guide on enabling swap memory on Ubuntu 14.04。
我不知道有什么方法可以处理Node内存不足的情况,除非您可以将GET请求分离到子进程中,以便在内存不足时整个服务器不会崩溃
要增加Node的内存限制,您可以使用Node的--max_old_space_size选项。
答案 4 :(得分:1)
使用Meteor 1.1.0.3在Windows 10上相同:
C:\Users\Cees.Timmerman\AppData\Local\.meteor\packages\meteor-tool\1.1.4\mt-os.windows.x86_32\tools\fiber-helpers.js:162
}).run();
^
FATAL ERROR: Evacuation Allocation failed - process out of memory
Resolved通过将settings.json
2.1.0(var level = Meteor.settings.log_level
)等记录程序包内部使用的Winston中的控制台日志级别设置为“警告”而不是“调试”
答案 5 :(得分:1)
我知道这个问题已经解决并且有点陈旧,但我想分享一下我的经验。经过一番研究,我刚刚更新了我的Meteor版本。看起来他们最近更加关注内存不足的错误。因此,我鼓励您更新到新的Meteor版本。