Java新MongoClient()需要10秒钟

时间:2014-01-18 15:10:32

标签: java mongodb performance

这个问题非常简单,几乎所有内容都在标题中。

当我这样做时

MongoClient mc = new MongoClient();

我的程序挂起大约10-15秒,没有任何明显的CPU或内存使用量变化。

在此之后,对数据库的调用似乎闪电般快。我的程序在本地作为我的数据库运行。

我的开发笔记本电脑非常快,所以这个问题不太可能与硬件有关。

这是我第一次将MongoDB与java一起使用。使用PHP,数据库连接几乎是即时的,所以我想它应该是相同的!

这是我的程序的输出

program start time : 1390057127744 // 0,000s

new mongojacktest // a small object I made for my tests

new MongoClient() // The output hangs here and if I comment this line I get errors
       // but my entire program runs in 5ms or less
 start time :1390057127745 // 0,001s 
getDB(myTestDb) 
 start time :1390057127745 // 0,001s
getCollection - testCollection 
 start time :1390057127745 // 0,001s

print db collections :
firstCollection
system.indexes

program exit time : 1390057143987 // 16,242s WTF?

我有什么遗漏或这是正常的吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

我无法确定,但可能是它正在尝试解析主机名,也许您的DNS速度很慢或无法访问。要测试(如果您在单个Mongo节点上运行)模式,请传递服务器的确切地址,即127.0.0.1

MongoClient mc = new MongoClient("127.0.0.1", 27017);

您可以再做一次尝试,即在您的计算机上禁用IPv6协议。