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