Neo4j第一次调用时的速度

时间:2013-08-23 06:53:25

标签: neo4j

我有一个简单的jquery,通过get调用servlet,然后Neo4j用于返回JSON格式的数据。

在FIRST查询之后系统是可行的,但是第一次使用它时系统的速度令人难以置信地缓慢。这是某种初始化问题。我正在使用Heroku网络托管。

代码相当长,所以我现在不发布,但是有没有关于第一次调用Neo4j的任何已知问题?

到目前为止,我已经对性能进行了有限的测试,因为我有很多JSON问题,他们只是刚刚解决了。

要点:

的JQuery(LINUX)< - > get(JSON)< ---> Neo4j的

  1. 首次查询 - 响应时间为10-20秒
  2. 第二次查询 - 时间为2-3秒
  3. 更多查询 - 2/3秒。
  4. 这不是一次性的;我测试了几次,总是出现相同的模式。

1 个答案:

答案 0 :(得分:1)

这是Neo4j的正常行为,其中存储文件被懒惰地映射到内存中以使部分文件变热,并且变热需要数千个对这样的部分的请求。这是一种考虑到大商店的行为,而对于较小的商店,它只会妨碍(为什么不映射整个东西,如果它适合内存?)。

然后,最重要的是一个“对象”缓存,它进一步优化了访问权限,可以懒得填充所请求的实体。

使用SSD而不是旋转介质通常会加速初始的非内存映射随机访问,但在您的场景中我认识到这是不可行的。

有人认为,在数据库生命周期的开始,对商店的热门部分(即使内存映射,即使不是很热)更敏感,或者更确切地说,热敏感度是当前内存的多少映射与最大可映射的数量。这表明初始请求的响应速度更快。