Complete.Org: Mailing Lists: Archives: freeciv-dev: November 2002:
[Freeciv-Dev] Re: (PR#2370) Path finding
Home

[Freeciv-Dev] Re: (PR#2370) Path finding

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: freeciv-dev@xxxxxxxxxxx
Subject: [Freeciv-Dev] Re: (PR#2370) Path finding
From: Jason Dorje Short <vze49r5w@xxxxxxxxxxx>
Date: Tue, 26 Nov 2002 04:46:47 -0500
Reply-to: jdorje@xxxxxxxxxxxxxxxxxxxxx

Raimar Falke wrote:
On Tue, Nov 26, 2002 at 12:59:49AM -0500, Jason Dorje Short wrote:

Another case: with the CMA+SMA, Raimar found that agents took 16 seconds per turn as the game progressed. But when he broke this down, he found that only an insignificant fraction came from actual calculations (very similar to the PF ones, I suspect). What was causing the slowdown was network latency and (mostly) unnecessary graphical updates.


After 100 turns:
2: update_map_canvas_visible: 43,916252s from 490 calls
2: unqueue: 36,182100s from 390 calls
2: update_map_canvas: 51,305540s from 7420 calls

CMA local CPU time is 3.3s:
2: CMA: overall=3,364782s queries=4007 0,839726ms / query
2: CMA: apply_result: ignored=92.2% (3696) applied= 7.8% (311) total=4007

Waiting for the server (network):
2: A:SMA: waited 4,085804s in total for network; requests=83; waited 83 times
2: A:CMA: waited 44,630560s in total for network; requests=644; waited 318 times
2: A:GA: waited 24,971887s in total for network; requests=742; waited 742 times

So the drawing costs us about the same time as waiting for the server
(2 * ~1min) while the actual CMA calculations only took 3.3s.

Note this is on a localhost connection: on a remote connection this will be far slower.

The problem with network latency is that the agents must work synchronously, in series. When a query is made all calculations must stop until there is a reply. This fundamentally limits the effectiveness of agents. I can imagine that getting rid of this limitation will be hard (you don't always know when one agent is stepping on another's toes), but it is probably the only way to get usable results.

This will have the side effect of reducing the number of redraws necessary, since the packets will come in batches and fewer unqueues will be done. And in the meantime hopefully some improvements to drawing efficiency will happen.

jason



[Prev in Thread] Current Thread [Next in Thread]