You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jena.apache.org by Sara Magliacane <sa...@gmail.com> on 2011/04/19 23:00:00 UTC

Timing single iterators' execution in ARQ

Hi list,

I'm trying to identify some performance metrics for SPARQL query execution
in ARQ.

In particular I thought it would be interesting to measure the execution
time for single iterators for a given SPARQL query in ARQ.

This task is easy for iterators like QueryIterSort (and other solution
modifiers), which materializes all the results before performing the
ordering operation, but it looks a little more complex to measure the
execution time of other iterators, which have to wait for the preceding
iterators to return their Bindings.

A possible solution would be to measure the whole execution time of an
iterator (from its instantiation to its exhaustion) and subtract the
execution time of its "child" (assuming that there is only one). But would
this measurement have a sense?

Has anyone already implemented something similar? If this is the case, is
there a solution for a situation where an iterator has multiple children?

Thanks in advance,

Sara Magliacane

Re: Timing single iterators' execution in ARQ

Posted by Brian McBride <br...@epimorphics.com>.
Hi Sara,

Have you considered using a java execution profiler?  I recently used 
the Eclipse tracing and profiling tool TPTP* to gather some execution 
time stats on some Jena code.  This tool can show both base time and 
cumulative time for a class or method.  Base time is the time actually 
spent in the class or method exluding time in other classes/methods that 
it calls.  Cumulative time is the total time spent in the class or 
method, including the time spent in classes/methods that it calls.

Brian

* There may be better tools - that is just the one I found first.

On 19/04/2011 22:00, Sara Magliacane wrote:
> Hi list,
>
> I'm trying to identify some performance metrics for SPARQL query execution
> in ARQ.
>
> In particular I thought it would be interesting to measure the execution
> time for single iterators for a given SPARQL query in ARQ.
>
> This task is easy for iterators like QueryIterSort (and other solution
> modifiers), which materializes all the results before performing the
> ordering operation, but it looks a little more complex to measure the
> execution time of other iterators, which have to wait for the preceding
> iterators to return their Bindings.
>
> A possible solution would be to measure the whole execution time of an
> iterator (from its instantiation to its exhaustion) and subtract the
> execution time of its "child" (assuming that there is only one). But would
> this measurement have a sense?
>
> Has anyone already implemented something similar? If this is the case, is
> there a solution for a situation where an iterator has multiple children?
>
> Thanks in advance,
>
> Sara Magliacane
>