解析7000个xml文档的Node / Express致命错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解析7000个xml文档的Node / Express致命错误相关的知识,希望对你有一定的参考价值。

我的服务器下载了一个文本文件(大约800 mb),它实际上是彼此附加的XML字符串。将这个字符串分割成有效的XML字符串数组后,我遍历该数组并使用一个库将其转换为JSON,然后在其中获取相关数据并将其添加到我的数据库中。

问题是,大约有7000个XML字符串(索引),并且此消息导致我的应用程序错误:

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - javascript heap out of memory

我已经尝试增加package.json文件中的--max_old_space_size=4096。这改善了它,在第6000个索引附近失败。然后,我尝试将其加倍到8192,但也失败了。

有人知道解决方案吗?


其他信息

我需要此数据的原因:

我的应用程序包括可以创建文本搜索条件的用户。服务器每周一次下载此文件,然后根据用户搜索条件发送一封电子邮件,其中包含符合这些搜索条件的文档。

是否需要将这些文档加载到数据库中?无论如何,我打算在发送电子邮件后清理桌子。我选择以这种方式尝试,因为我认为利用内部联接比在普通js中完成所有操作要快。

答案

我正在通过vscode的终端运行服务器。当我在终端机上尝试时,到目前为止,它已经工作了3/3次,而且没有错误。

不知道为什么会这样,但至少可以正常工作!

以上是关于解析7000个xml文档的Node / Express致命错误的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Node.js 解析 HTML/XML 文档?

xml解析3种方式

xml解析3种方式

抱歉最近朋友结婚去浪了几天~未来几天会正常更新.今天带来XML文件解析

通过正则表达式实现简单xml文件解析

在 XML 文档中搜索值列表