Re: MOBProg patches

jtraub@zso.dec.com
Date: 06/15/94


In message <199406152025.QAA00310@lictor.acsu.buffalo.edu>  you wrote:
>This seems like a very interesting patch.. however.. I'd like to warn all
>you people out there that running an interpreted language (the MOBProg
>programs) under the CircleMUD server is a nono in my book.

Alright, this is just too good to pass up in my book ;)

>Interpreted languages run much slower than compiled languages. Since C is
>compiled, the server is compiled.. the environment does not need to parse
>through the code and compile it as it goes along. However, with the
>MOBProg code, the server itself has to go through each line of the script
>every time an event happens... this is CPU time going out the window, IMHO.

Here is where you are wrong.  The script is ONLY parsed if it's relavant,
and only parsed as far along as is needed. ;)  Yes, it is a bit slower
than coding in C, however, the speed difference to your standard user
is NOT going to be all that great unless you have a huge number of users
on triggering huge numbers of events at any given time (and by huge I do
mean huge, not just 10-20 a second, but on the order of more than a hundred
a second, which most muds will NOT get)

Let me give you a bit of background on where I'm coming from before you
tell me how much bullshit you think I'm spouting.

I helped write the TinyMUSH2.0 server, which basically has something akin
to the MOBPROG code available for ALL players to code objects out of (for
those of you not aware of the Tiny* side of the universe, most tiny*'s allow
for ALL users to be able to extend the database).  Now, PernMUSH (a mud I
used to run) regularly has a large contingent of players online (60+
at almost all hours of the day, 100+ during prime evening hours) and
occasionally the lag gets noticable.  However, the source of the lag is
NOT the code (which is stored in plain ascii text strings and interpreted
whenever it's triggered) but instead is caused by the fact that too many
objects are currently loaded into memory and the machine is swapping.

Dikumuds should NOT have this problem as their databases do not have the
property that they can grow without bounds.

>Learn how to doll up the C to look for events, and code your own C events
>using spec_proc (for you Circle 2.x people) or by whatever method Jeremy
>has written for Circle 3.0. Trust me, your server will run faster than
>using the MOBProg.

MOBProgs are useful mostly for giving flavor to areas, something that you
don't want to have to code in C because it's simply faster and easier
to code it in some sort of psuedo-language (like MobProgs).  It also makes
flavoring in areas available to those people who don't know C, but still
want some bit of 'fun' in their areas.

Trust me, you will NOT notice the difference between a server running with
MOBprogs and a server not using them and using C procs instead.

--JT/Moonchilde



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