gpt4 book ai didi

node.js - Mongoose(node.js模块)导致CPU占用率高

转载 作者:可可西里 更新时间:2023-11-01 09:19:30 27 4
gpt4 key购买 nike

我正在使用 nodetime 分析我的 node.js 应用程序的高 CPU 使用率。超过 30% 的 CPU 使用率来自 Mongoose:

enter image description here

下一个最大的罪魁祸首是垃圾收集器,仅占 5%。

相信我以前听说 Mongoose 会导致 CPU 使用率过高,最好跳过它并直接使用 Mongo 驱动程序。这准确吗?

这里是“Geocode.decodeMnay”函数,触发了这个特定的热点...

Geocode.prototype.decodeMany = function(strs, callback)
{
var or = [],
map = {},
fields = {'woeid': 1, 'matched_queries': 1, 'latitude': 1, 'longitude': 1, 'radius': 1, 'name': 1},
unique = [];

strs = _.uniq(strs);
for(var k=0; k<strs.length; k++)
or.push({'matched_queries':strs[k].trim()});

this.model.find({$or: or}, fields, (function(e,matches){
// ... excluded for brevity
}).bind(this));
};

还有什么方法可以加速这个热点?

注意,正如您所见,并不是查询花费了很长时间,而是 Mongo 驱动程序花费了很长时间来处理结果(并且在过程)。

最佳答案

对于 Mongoose,使用 lean 很重要用于具有大型结果集的查询的选项,在这些查询中,除了纯 JavaScript 文档本身之外,您不需要任何东西。这应该提供与直接使用 native 驱动程序相当的性能。

例如,在上面的例子中,它将是:

this.model.find({$or: or}, fields).lean().exec(function(e, matches) {
// ... excluded for brevity
}).bind(this));

关于node.js - Mongoose(node.js模块)导致CPU占用率高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15097375/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com