0
太慢了,我用下面的代码找到两个节点之间的最短路径:最短路径查询与OrientDB
Iterable<Object> spath = orientGraph.getRawGraph().command(new OSQLSynchQuery<Object>(
"select shortestPath("+v1.getId()+","+v2.getId()+",'BOTH')"));
我的问题是,我需要太多的时间。我的图形有36,692个顶点和367,662个边,查询需要大约2分钟。我使用orientdb-1.6.2。我的机器有一个2.3 Ghz CPU(i5),4GB RAM和320GB磁盘,我在Macintosh OSX Mavericks(10.9)上运行。
请注意,我没有为我的数据库使用任何特殊配置。我只是用下面的代码打开它:
orientGraph = new OrientGraph("plocal:"+orientDBDir);
另外我的堆大小是在2GB。
有没有一种方法来提高程序的速度?
编辑:我想用下面的代码
System.out.println(spath.iterator().next());
一些测试我意识到spate.iterator旁边的()()线是减慢的程序之一后打印结果。这是为什么?
所以你没有使用服务器,但你连接嵌入到OrientDB,对吧?这是冷启动吗?你是否尝试过执行2次相同的查询来查看它是否更快? – Lvca
不,我没有使用服务器。这是一个冷静的开始。我运行它5次迭代,并没有得到更快。 – salvador
请参阅编辑 – salvador