Two things:
1) Does the performance of getNodes("*") improve with every subsequent
call? I notice that, for the first call, it takes almost 6 seconds, but
after that, it takes .1 second. Of course, there are no changes being made
to the repository.
2) Just like how it's possible to set a limit/offset for iterators returned
on queries, is it possible to do the same for getNodes()/getNodes("*")?
On Thu, Oct 2, 2008 at 5:36 PM, Jukka Zitting <[EMAIL PROTECTED]>wrote:
> Hi,
>
> On Thu, Oct 2, 2008 at 1:52 PM, Sridhar Raman <[EMAIL PROTECTED]>
> wrote:
> > Here's another curious thing that I noticed. In the first case, I was
> using
> > node.getNodes() to get the iterator. I tried node.getNodes("*"), and I
> > notice that the skip method now is almost instantaneous. Is this
> expected?
>
> That's because getNodes("*") already traverses the list of all child
> nodes before returning an iterator over the collection of all matching
> nodes. The skip method is fast on the returned iterator just because
> all the hard work has already been done.
>
> The getNodes() method on the other hand tries to postpone the
> expensive operations as long as possible, which is why it'll return
> fast, but then the next() and skip() methods on the returned iterator
> are more expensive.
>
> BR,
>
> Jukka Zitting
>