"any sufficiently advanced technology is indistinguishable from magic..." - 
Arthur C. Clarke


-----Original Message-----
From: user-boun...@lists.neo4j.org [mailto:user-boun...@lists.neo4j.org] On 
Behalf Of Mattias Persson
Sent: Thursday, December 17, 2009 1:15 PM
To: Neo user discussions
Subject: Re: [Neo] traverser speed on first execution

Then there's the JVM voodoo-hot-spot-just-in-time-compilation which
need some warmup as well. I'm not really good at JVM behaviour, but
that's my guess.

2009/12/17 Rick Bullotta <rick.bullo...@burningskysoftware.com>:
> It is likely because the caching infrastructure needs to load the nodes
> once, and then can progressively optimize traversals after that.
>
> A common practice to boost "first user" request performance is to
> "pre-cache" certain frequently accessed content by executing a dummy
> traversal/query when you start your application or web application.
>
>
>
>
> -----Original Message-----
> From: user-boun...@lists.neo4j.org [mailto:user-boun...@lists.neo4j.org] On
> Behalf Of Darren Jensen
> Sent: Thursday, December 17, 2009 8:16 AM
> To: user@lists.neo4j.org
> Subject: [Neo] traverser speed on first execution
>
> Hi Neo4j users,
>
> My model is based on a typical Yellow Pages style business directory which
> basically consists of Categories (like "Hotels", "Restaurants", "Swimming
> Pools" etc) and Listings (e.g. "Marriott Hotel"). A listing can be placed
> under one or more Categories and a Category can contain one or more
> Listings.
>
> I have written a simple traverser that returns all the Listings in a
> Category. I am testing with a Category that contains 566 listing nodes. I am
> wondering why the first time the code executes, it is much slower than
> subsequent executes? Can you tell me a little bit more about what is
> happening under the hood please? Is the first execution slower becuase Neo4j
> has to setup the traverser or is it to setup the transaction? Are there any
> improvements that I can make to speed up the first execution?
>
> Here are the execution times (in order of execution):
>
> Duration: 661 ms
> Duration: 128 ms
> Duration: 82 ms
> Duration: 82 ms
> Duration: 121 ms
> Duration: 31 ms
> Duration: 25 ms
> Duration: 20 ms
> Duration: 12 ms
> Duration: 8 ms
> Duration: 7 ms
> Duration: 6 ms
> Duration: 4 ms
>
> This is the traverser code (which is executed in a transaction):
>
> Traverser listingInCategoryTraverser = categoryNode.traverse(
>    Traverser.Order.BREADTH_FIRST,
>    StopEvaluator.END_OF_GRAPH,
>    ReturnableEvaluator.ALL_BUT_
> START_NODE,
>    RelTypes.CATEGORIZED_AS,
>    Direction.INCOMING );
>
> Many thanks for any comments and ideas!
>
> Darren
> _______________________________________________
> Neo mailing list
> User@lists.neo4j.org
> https://lists.neo4j.org/mailman/listinfo/user
>
> _______________________________________________
> Neo mailing list
> User@lists.neo4j.org
> https://lists.neo4j.org/mailman/listinfo/user
>



-- 
Mattias Persson, [matt...@neotechnology.com]
Neo Technology, www.neotechnology.com
_______________________________________________
Neo mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user

_______________________________________________
Neo mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user

Reply via email to