[Home] [Groups] - Message: [Prev in Group] [Next in Group]

nu.kanga.list.mud-dev

18999: Re: [MUD-Dev] Re: TECH: Distributed Muds

[Full Header] [Plain Text]
From: Christopher Kohnert <cjkohner@brain.uccs.edu>
Newsgroups: nu.kanga.list.mud-dev
Date: Thu, 26 Apr 2001 13:53:24 -0600
References: [1]
Organization: Kanga.Nu
Derek Snider wrote:
 
> All muds in the DikuMUD family traverse the global object list every
> "tick" (roughly once per minute) to update the state of all objects.
 
> This includes things like executing a random program associated with
> the object (ie: every so often the object does some random thing),
> as well as decay timers (objects that "rot").
 
> A special list could be set up for objects that rot, and objects
> with programs to avoid traversing the entire global object list.
 
> On a side note, from tests I have done a program can traverse a
> linked list of 1,000,000 links in 0.16 seconds on a PII 333Mhz
> machine running a mud, webserver, ftp server, etc (90% idle).
 
> Of course the list elements were tiny, but it wasn't to test how
> well the virtual memory worked.

You know, I've been curious. I've tried to get that sort of idle time
in some prototype servers I've implemented. Granted, I have a sort of
nasty requirement in that my 'tick' needs to be in 1/100th of a
second. I've done a blocking select on the sockets but found the
latency for commands entered on any of the sockets to be too
unbearable. My question is how you achieve a 90% idle rate with any
sort of responsive sockets. Perhaps a simple usleep() with no actual
blocking select? I'm just curious because I've found that anything
other than a tight non-blocking polling loop is just 'laggy'.

Chris
_______________________________________________
MUD-Dev mailing list
MUD-Dev@kanga.nu
https://www.kanga.nu/lists/listinfo/mud-dev