[GraphHopper] With Regards to issue 31
Quinton Anderson
quintona at gmail.com
Tue Apr 16 10:00:30 UTC 2013
Hi Peter,
I received the mail from you, not from the mailing list.
My first round of evaluation is complete and graphhopper is looking good. So I will start to spend some time of this now. Look forward to some more discussions.
Regards,
Quinton Anderson
On 16 Apr 2013, at 4:59 PM, Peter K wrote:
> Hi Quinton,
>
> yes, I also had some strange problems with the mailing list :( I've tuned the digest setting a bit (hopefully this helps) the defaults of mailman are really bad sometimes. Sorry for this!
>
> Now regarding your problem: it could be that you've trapped in the micro benchmark problems with Java that every one (including me*) is trapped at some stage :)
> You are loading the graph correctly but you execute the request only once. Try running it several times so that the JVM can optimize your code / 'hotspot'!
>
> See OSMReader where I do:
> //first call is the warmup !
> tests.runShortestPathPerf(...)
> tests.runShortestPathPerf(...)
>
>
> > I guess the next question is: what is included in the timer shown on the webpage?
>
> The demo is identical to the graphhopper-web project. See GraphHopperServlet:
> sw = new StopWatch().start();
> GHResponse rsp = hopper.route(new GHRequest(start, end)....
> float took = sw.stop().getSeconds();
>
> Ie. the complete graphhopper.route call is included (BTW: not the network latency).
> The web demo stays online all the time and so the code stays optimized and you see those low values.
>
> Still curious if that was your problem and if you've now recieved mailman mails :) ! To be sure I've added your mail as BCC ...
>
> Regards,
> Peter.
>
> *
> see comments from Aleksej!
> http://karussell.wordpress.com/2009/05/21/microbenchmarking-java-compare-algorithms/
>
>
>> Hi Peter,
>>
>> I am not sure what is going on with the mailing list, but I don't receive the mails. I checked the archive in order to see your response. I have checked my spam filter too.
>>
>> I am not building the graph using run.sh, I am only running this code as a unit test:
>>
>> public class TestGH {
>>
>> @Test
>>
>> public void test() {
>>
>> GraphHopper gh = new GraphHopper().forServer().contractionHierarchies(true);
>> gh.load("./london.osm");
>>
>> System.out.println(gh.getGraph().getClass());
>>
>> GHRequest request = new GHRequest(51.559997,-0.226593,
>>
>> 51.448016,0.063171);
>>
>> request.algorithm("dijkstrabi");
>>
>> StopWatch sw = new StopWatch().start();
>>
>> GHResponse response = gh.route(request);
>>
>> System.out.println(response.debugInfo());
>>
>> System.out.println("Route Time: " + sw.stop().getSeconds());
>>
>> System.out.println(response.distance() + " " + response.time());
>>
>> PointList points = response.points();
>>
>> for (int i = 0; i < points.size(); i++) {
>>
>> System.out.println(points.latitude(i) + " : " + points.longitude(i));
>>
>> }
>>
>> }
>>
>> }
>>
>> This will build the graph data in the same way as if I invoked run.sh. forServer gives me what I am guessing are good defaults:
>> simplify(true);
>> preciseIndexResolution(1000);
>> return setInMemory(true, true);
>>
>> Followed by contractionHierarchies():
>> public GraphHopper contractionHierarchies(boolean fast) {
>> chUsage = true;
>> chFast = fast;
>> return this;
>> }
>>
>> Then when load is called GraphHopper calls the OSMReader in the same way as I would from command line or run.sh.
>>
>> I have added some more debug output:
>> class com.graphhopper.storage.LevelGraphStorage
>> idLookup:0.01s, algoInit:0.0010s, dijkstraCH-routing:0.0060s, extract time:0.0020, simplify (825->401):0.0070s
>> Route Time: 0.027
>>
>>
>> It seems that the lookup takes some time. Then, from what I can tell, the actual routing includes the remaining times, being algo init, routing, extraction and simplification. These total 17ms.
>>
>> I am also seeing some drastic changes in performance per run. The run above took 27ms, the next run of the same code took 110ms. When I run the same coordinates in the web demo the result is consistently 6 or 7ms.
>>
>> I guess the next question is: what is included in the timer shown on the webpage?
>>
>> Thanks.
>>
>>
>> _______________________________________________
>> GraphHopper mailing list
>> GraphHopper at openstreetmap.org
>> http://lists.openstreetmap.org/listinfo/graphhopper
>
>
> --
> GraphHopper.com Your way is our destination!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstreetmap.org/pipermail/graphhopper/attachments/20130416/23922748/attachment-0001.html>
More information about the GraphHopper
mailing list