小编Jav*_*eed的帖子

在进行查询时通过mongoose降低内存使用量的方法

我正在研究节点后端尝试通过mongoose优化对mongodb的非常繁重的查询.预期的返回大小是相当大的,但由于某些原因,当我发出请求时,节点开始消耗大量内存,例如200mb +用于单个大请求.

考虑到大多数情况下回报的大小小于10mb,这似乎不对.它在完成后也拒绝放弃内存,我知道这可能只是V8 GC执行其默认行为,但我担心的是单个find()请求消耗的大量内存.

我通过测试find()调用将其隔离了.完成调用后,它会执行一些后处理,然后将数据发送到回调,所有这些都在匿名函数中.我尝试使用querystream而不是model.find(),但它没有显示真正的改进.

环顾四周没有得到任何回应,所以我会问,是否有一种已知的方法来减少,控制或优化猫鼬的内存使用量?有谁知道为什么这么多的内存被用于一次通话?

编辑

根据Johnny和Blakes的建议,使用lean()和流的混合,并使用暂停和恢复,极大地改善了运行时和内存使用.谢谢!

memory mongoose mongodb node.js

5
推荐指数
2
解决办法
2247
查看次数

标签 统计

memory ×1

mongodb ×1

mongoose ×1

node.js ×1