Tag: jexl

NodeJS脚本和使用jexl处理mongodb文档时的高内存使用率

我已经创build了一个nodejs脚本来处理一个mongodb产品集合。 每个产品都需要使用expression式语言jexl来处理。 最终结果应该是包含所有产品数据的文本文件。 该脚本的作品,但我需要一些帮助来优化它,因为它消耗了大量的内存。 在脚本中,我使用了一个批量为1-5的mongodb光标来限制接收到的文档。 查询接收约9200个文件,平均大小为8.7KB。 使用1的批处理大小需要花费大约200-600 MB的内存。 当我设置批量大小为〜10我得到一个内存不足的例外。 (CALL_AND_RETRY_LAST分配失败 – 进程内存不足)。 我已经试图将jexl.eval注释掉,脚本在几秒钟内运行。 有人有一个想法如何优化这个脚本? lineTemplate是所有jexlexpression式的连接string。 我剪切了这个expression式string,使整个脚本更具可读性。 通常情况下,最后一个expression式“{{attributes [.id == 1 && .language ==”“]属性中的属性是[.id == 1 && .language ==”“] .value:”“}} |” 用不同的ID重复106次。 var async = require("async"); var lineTemplate = '{{no}}|Parent_ID|{{no}}|{{translations[.language == "DE-DE"] in translations ? translations[.language == "DE-DE"].title : ""}}|{{prices[.channel == "DE" && .specialPrice == false] […]