首次调用Neo4j时的速度

首次调用Neo4j时的速度,neo4j,Neo4j,我有一个简单的jquery,它通过get调用servlet,然后使用Neo4j以JSON格式返回数据 在第一次查询之后,该系统是可行的,但在第一次使用时,该系统的速度慢得令人难以置信。这是某种初始化问题。我正在使用Heroku网络托管 代码相当长,所以我现在不发布,但是关于第一次调用Neo4j有什么已知的问题吗 到目前为止,我对性能进行了有限的测试,因为我遇到了很多JSON问题,这些问题才刚刚得到解决 总结: JQuery(LINUX)get(JSON)Neo4j 第一个查询-响应时间为10-2

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

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

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

到目前为止,我对性能进行了有限的测试,因为我遇到了很多JSON问题,这些问题才刚刚得到解决

总结:

JQuery(LINUX)get(JSON)Neo4j

  • 第一个查询-响应时间为10-20秒
  • 第二次查询-时间为2-3秒
  • 更多查询-2/3秒

  • 这不是一次性的;我对此进行了几次测试,始终出现相同的模式。

    这是Neo4j的一种正常行为,其中存储文件被惰性地映射到内存中,用于文件中变热的部分,而变热可能需要数千个对该部分的请求。这是一种考虑到大型商店的行为,而对于小型商店来说,这只是一种阻碍(如果它适合内存,为什么不映射整个东西?)

    然后再加上一个“对象”缓存,进一步优化访问,为请求的实体惰性地填充

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

    有人建议在数据库生命周期开始时对存储区的热门部分(即内存映射,即使没有那么热门)更加敏感,或者更准确地说,热敏性是当前内存映射的数量与最大可映射的数量的函数。这表明,最初的请求更具响应性