Complete.Org: Mailing Lists: Archives: freeciv-dev: November 2002:
[Freeciv-Dev] Agents and network (Was (for reasons unnown): Path findig)
Home

[Freeciv-Dev] Agents and network (Was (for reasons unnown): Path findig)

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: Freeciv Development List <freeciv-dev@xxxxxxxxxxx>
Subject: [Freeciv-Dev] Agents and network (Was (for reasons unnown): Path findig)
From: Gregory Berkolaiko <Gregory.Berkolaiko@xxxxxxxxxxxx>
Date: Tue, 26 Nov 2002 13:17:23 +0000 (GMT)

On Tue, 26 Nov 2002, Jason Dorje Short wrote:

> Raimar Falke wrote:
> > 
> > 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.

Possible solutions are:
1. Make client fully rules-aware (duplicate rules engine in client)
2. Move the agents to the server.

Option 1 is boring.

Option 2 will impose some limitations on the client and is certainly a 
very brave thing to do.  But it will be very interesting to code and will 
also stop many compatibility problems.

G.



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