1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
This is the perlmoo Frequently Asked Questions list.
Q: I entered ansi escape sequences and the moo accepted them, and I turned
the screen black on black / beeped other users / drew a pretty picture.
Shouldn't this be disabled?
A: I don't think the moo should be responsible for setting policy on this.
Some applications of perlmoo may use escape sequences for valid purposes -
some people like colored moo's, some people may even like the occasional
beep. If someone abuses it, they should be reported to the moo's wizards
and delt with. With that said, there is an easy technical fix, just modify
Person.pm's tell() or parse() functions to strip high-bit characters. Or,
use a moo client that filters out stuff you don't like.
Q: How well does perlmoo scale?
A: This isn't yet tested in real life. Someone please start a wildly
successful perlmoo server so I can get some real numbers? ;-) I haven't
done any optimizations at all yet.
I've done some testing on how well it scales to large numbers of objects
-- on my pentium 166 with 80 mb of ram, I created 1000 people, 1000
objects, 1000 rooms, and 1000 exits (see stresstest.pl). The resulting
perlmoo process took up 18684k -- 14168k more than it does with the base
db. Dumping the database took 2 minutes, and generated a 1360k file.
Loading it again took 15 minutes.
Connecting to the moo and getting a login prompt took 9 seconds.
Logging in as wizard from there was an additional 12 seconds.
Most commands took about 15 seconds, once I was logged in.
Then I dropped all the stuff I was carrying, moved to a new room, and
tried some commands. Most things were exactly as fast as in a perlmoo
with 14 objects.
In general, the only problems you seem to run into with large numbers of
objects is if there are many objects in a single room (or container or
person). Then they all need to be looked through for each verb that is
run. If there are only a reasonable number of objects in a room, then the
only operations that take too long are ones that involve scanning the
whole list of objects - anything that uses FindByType or FindByName in
the code. (Those are prime optimization candidates).
|