我有一个包含2,324,835个节点和170,075,768个边的图。
在使用Neo4j的java BatchInserter
将图形插入到Neo4j之后,我试图获取程度为29,000的节点上的关系,并在每个关系上获取一个int属性。
抓取过程由Neo4j的嵌入式Java应用程序完成。
第一次获取我需要的所有信息需要266s,然后我关闭数据库,关闭java应用程序并再次启动它。
在第二次,我在同一节点上重复相同的过程,但这次只需要11秒完成我的任务。
这种行为合理吗?为什么第一次需要这么长时间?我认为这不是缓存问题,因为我重新打开java应用程序并且内存中的缓存应该已经消失了吗?
我在使用openjdk-7的Linux机器上使用Neo4j 2.1.6。 我的scala应用程序调用了java库。