Re: [DESIGN ISSUES] Speed & System Usage (+ Bragging? :-)

From: Chris Jacobson (fear@ATHENET.NET)
Date: 04/22/98


Concerning speed arguments recently taking place:

Remember, folks, these are running on servers - server software running
on server hardware.  Not workstation software running on workstation
hardware.

The jist of the message:
Parsing text, reading a bunch of small files (or one large one) - what
does it all matter when, while they may have speed differences, they
effectively are unnoticeable speedwise, and in the end, they provide the
advantages YOU want.  Ascii pfiles are a godsend for me, and ascii object
files are also, as I can add new fields, change the way currently
existing ones work, and also save disk space.  If this were a high end
commercial MUD and getting all the speed out of it as possible was
necessary, and I had the time to write utilities to convert the files
every little change I make, then perhaps I would use binary pfiles.

Now the useless irrelevant bragging data:
My C++ CircleMUD with 70k lines (2 megabytes) of code, using accessor
functions and all kinds of fun overhead (and now I'm learning about
Rules, find out more at
http://www.research.att.com/sw/tools/r%2b%2b/ - basically a cleaner
replacement to set-accessors), uses (according to ps -ux:

USER       PID %CPU %MEM  SIZE   RSS TTY STAT START   TIME COMMAND
avp       3555  3.6  4.6 19020 18032  ?  S   21:37   2:12 bin/circle -q
4444
avp       3562  0.4  2.1  9416  8384  ?  S   21:38   0:14 bin/circle -q
4000

Each has been up for 1 hour.  4444 has had a boot time high of 23
players, 20 sockets connected at this snapshot.  4000 has a boot time
high of 4 players, 4 sockets connected.

Here is a snapshot of TOP's system report:
 10:40pm  up 13:49, 12 users,  load average: 0.23, 0.57, 0.56
157 processes: 147 sleeping, 1 running, 8 zombie, 1 stopped
CPU states:  9.6% user, 24.2% system, 32.9% nice, 66.3% idle
Mem:  386444K av, 384316K used,   2128K free,  80236K shrd,  82724K buff
Swap: 130748K av,      0K used, 130748K free                 72408K cached

There are plenty of MUDs running here, somewhere around 30 or so.  Its a
P2/233, LX.

Now admittedly 3.6% CPU time is high for a MUD, but a quick stat check
shows:

     20 players in game     18 connecte
    381 registere
    630 mobiles            525 prototype
   3807 objects           1377 prototype
   7482 rooms               61 zone
      5 large buf
    380 buf switches         1 overflow


And this is with DG Scripts, MOBProgs, and other "run-time overhead
adding" patches.

Now that I'm done bragging, I just want to say, these are actually very
good stats, especially considering the overhead of the code.  There is a
lot of special linked list usage (I use a custom template, LList<>, which
uses iterators that it has to create for each iteration and delete at the
end, but it is safe to add/remove items from the list without messing up
any iterators - I'm about a month away from releasing my codebase as
LexiMUD, look for it then... I do want to redo the index system to a new
class tho also, and gut mobprogs, but I can't gut them till my staff
convert all 400 existing ones over).

- Chris Jacobson


     +------------------------------------------------------------+
     | Ensure that you have read the CircleMUD Mailing List FAQ:  |
     | http://democracy.queensu.ca/~fletcher/Circle/list-faq.html |
     +------------------------------------------------------------+



This archive was generated by hypermail 2b30 : 12/15/00 PST