2014-10-11 117 views
0

这里是我的“hello world”最小Node.js应用程序连接到本地主机上安装并运行的数据库。这个小应用需要0.41秒的精确时间。为什么从Node.js连接到MongoDB的速度很慢

var mongo = require('mongodb').MongoClient 
var c = mongo.connect('mongodb://localhost', 
function(err, db){ 
    console.log(db) 
    db.close() 
}) 

与此同时,使用MongoDB的默认的shell,你可以在命令行中执行,称为mongo,我可以连接almsot快十倍。它甚至执行一个简单的命令。

$ time mongo --eval "db" 
MongoDB shell version: 2.4.6 
connecting to: test 
test 

real 0m0.054s 
user 0m0.045s 
sys 0m0.008s 

为什么从Node.js连接速度较慢,如何加快速度以达到与原生shell连接速度相同的速度?

+0

你不是在测量两件事吗?一方面,您要测量节点需要多长时间需要一个包,设置它并运行连接到MongoDB服务器的函数。另一方面,您要测量MongoDB客户端连接服务器的时间。我认为第一个例子中的大部分时间都是开销,而且这段时间会保持不变。 – JohnP 2014-10-11 18:12:18

回答

1

你在这里计时的是节点启动所需的时间,加载mongo模块,然后才能连接。你会发现,大多数这不是连接到数据库本身,而是解析,加载和执行整个脚本。

尝试在mongodb模块加载后从脚本内部运行计时。