如何配置RDF4J服务器的执行?

时间:2016-09-07 01:58:15

标签: java sparql profiler jvisualvm rdf4j

正如我在另一篇文章中指出的那样,我遇到了一些SPIN构造函数的问题,这些构造函数花费了过多的时间来执行非常有限的数据。我以为我会采取不同的方法,看看我是否可以分析构造函数的执行情况,以深入了解他们在哪些方面花费的时间过长。

如何在RDF4J Server下分析构造函数的执行?我正在通过SPARQL更新(INSERT DATA)查询进行实例化。这是RDF4J工作台的系统信息:

RDF4J Workbench Summary

我试图使用jvisualvm.exe对运行RDF4J服务器的Tomcat服务器进行概要分析,但我没有深入了解。理想情况下,我想深入了解RDF4J中的类/方法级别,以便我可以发布更详细的请求以帮助解决我的慢执行问题,或者修复我的查询以使其更有效。

所以这是Java Visual VM的版本:

Java Visual VM Version Info

RDF4J在Apache Tomcat 8.5.5下运行:

enter image description here

我可以看到关于Tomcat的概述信息:

enter image description here

我还可以看到监视器选项卡和线程:

enter image description here

enter image description here

然而,我真正想要看到的是分析器,以便我可以看到我的慢查询花了那么多时间。因为我没有为Java 1.8校准分析器,所以这依赖于校准。

enter image description here

此尝试连接框将无限期地持续存在。取消它会导致执行校准消息实际上没有做任何事情,并且是一个需要杀死Java VisualVM的死胡同。

enter image description here

在杀死Java Visual VM并重新启动并查看Options - > Profiling - > Calibration Data之后,我发现只有Java 7有校准数据。

enter image description here

我尝试将Tomcat切换到在Java 7上运行,这确实有效:

enter image description here

剖析器确实提出了Tomcat:

enter image description here

但是,当我尝试在Java 7上运行Tomcat时访问RDF4J工作台时,我无法运行工作台:

enter image description here

所以,我仍然被卡住了。看来RDF4J要求Tomcat在Java 1.8下运行,而不是1.7。我无法在Java 1.8下进行分析。

我已经在Java VisualVM上看到了有关此问题的其他帖子,但是一个适用的解决方案似乎是将所有内容放在开发环境(例如Eclipse)中,并在目标代码运行后在调试器断点处动态调用探查器在Java 1.8下。我没有设置用Tomcat和RDF4J这样做,并且需要指针。我的目的不是成为Tomcat或RDF4J的贡献者(因为我的任务不允许......我不会在时间上得到报酬)而是要对我的SPIN构造函数花费这么长时间的具体处理( s)就RDF4J服务器类而言,然后在gitub上向RDF4J开发人员社区寻求帮助。

可以绕过Java VisualVM校准吗?我可以在某处为Java VisualVM加载校准文件或目录,而不是尝试测量失败的校准数据吗?我只对类的相对CPU负载感兴趣,而不是绝对指标,我不需要与其他机器上的测量结果进行比较。

感谢。

0 个答案:

没有答案