因此,我使用 Virtuoso SPARQL 端点,并使用 Jena 来查询它。我使用 QueryFactory
和 QueryExecution
创建 SPARQL 查询:
Query query = QueryFactory.create(sparqlQueryString1);
QueryExecution qexec = QueryExecutionFactory.sparqlService("http://localhost:8890/sparql", query);
ResultSet results = qexec.execSelect();
现在我想计算运行此查询所需的时间。如何在 Virtuoso 上使用 Jena 来度过这样的时光?那可能吗?显然,我确实查看了诸如 getTimeOut1()
和 getTimeOut2()
之类的函数。他们似乎没有给我任何好的指导。作为一种黑客,我尝试使用Java的内置System.currentTimeMillis()
,但是我不确定这是否是正确的方法。任何关于如何找到执行时间的指示将不胜感激!
最佳答案
结果以流的形式返回,因此时间需要从 qexec.execSelect()
之前到应用程序处理完结果之后,而不仅仅是调用 execSelect
>.
Timer timer = new Timer() ;
timer.startTimer() ;
ResultSet results = qexec.execSelect();
ResultSetFormatter.consume(results) ;
long x = timer.finishTimer() ; // Time in milliseconds.
关于java - 在 Virtuoso 服务上使用 Jena 的 SPARQL 查询执行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33059263/