[MUD-Dev] Re: TECH: Distributed Muds

Christopher Kohnert cjkohner at brain.uccs.edu
Thu Apr 26 13:53:24 New Zealand Standard Time 2001

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'.

MUD-Dev mailing list
MUD-Dev at kanga.nu

More information about the MUD-Dev mailing list