Lojban MOO Performance

mooix is not terribly high-performance, and the machine it's
currently running on is fully encrypted, which Doesn't Help (tm).

Here are some notes and ideas about how to make things better:

Improvement Suggestions


Faster hybrid daddy: have markers like Eimi's untagged special in
the main source tree; users can insert them themselves if they want,
but they don't have too, but not having to go all they way up the
tree saves time.

session, $avatar, $direct_object and $this flags (and any
similar things that may exist) are not shortcutted in msg.c; that
is, propigate is run all the way through, even though (presumably)
finding the targets for a message with those flags requires no
propigation. I suspect this to be fairly serious.

Performance suggestion: Per-user flag to select from the following:

1. Daddy Tag

2. Own language always.

3. Daddy Tag with own language.

  1. 2 being much, much cheaper.



There must be *something* that can be done to make nearbyobjs
faster. Caching it and watching for changes is one possibility;
test mod time on the location's contents? Enh.


Rather larger scale idea:

We could have a layer in the language bindings that caches results
for 1 second (unless told not to).

Dunno if this would be faster than a RAM disk on a real box.

Might be better done on the parser; probably the most savings there.

Benchmarking Results


All these are from "look" in Robin's MUD Workshop by m-test (i.e. an English
user).

Before the conversion from XML to .lang:

[preprocessing took 0.000101 secs (0.000101) secs total)]
[nearbyobs took 0.477296 secs (0.477397) secs total)]
[prepping parser took 0.740027 secs (1.217424) secs total)]
[generating adjectives took 0.000580 secs (1.218004) secs total)]
[building nouns took 0.000693 secs (1.218697) secs total)]
[resetting took 0.000334 secs (1.219031) secs total)]
[gathering info took 0.000142 secs (1.219173) secs total)]
[parsing took 0.071015 secs (1.290188) secs total)]
[prepping command took 0.545593 secs (1.835781) secs total)]
[running command took 0.287330 secs (2.123111) secs total)]


After the conversion from XML to lang:

[preprocessing took 0.000113 secs -- (0.000113 secs total)]
[nearbyobs took 0.559789 secs -- (0.559902 secs total)]
[prepparser step 1 took 0.000686 secs -- (0.560588 secs total)]
[prepparser step 2 took 0.491008 secs -- (1.051596 secs total)]
[prepping parser took 0.000177 secs -- (1.051773 secs total)]
[generating adjectives took 0.000161 secs -- (1.051934 secs total)]
[building nouns took 0.000573 secs -- (1.052507 secs total)]
[resetting took 0.000056 secs -- (1.052563 secs total)]
[gathering info took 0.000031 secs -- (1.052594 secs total)]
[parsing took 0.069660 secs -- (1.122254 secs total)]
[prepping command part 0 took 0.000256 secs -- (1.122510 secs total)]
[prepping command part 1 took 0.003496 secs -- (1.126006 secs total)]
[prepping command part 2 took 0.001439 secs -- (1.127445 secs total)]
[prepping command part 2 took 0.000086 secs -- (1.127531 secs total)]
[prepping command part 3 took 0.000463 secs -- (1.127994 secs total)]
[prepping command part 4 took 0.000054 secs -- (1.128048 secs total)]
[prepping command part 5 took 0.000029 secs -- (1.128077 secs total)]
[prepping command part 6 took 0.000027 secs -- (1.128104 secs total)]
[prepping command part 7 took 0.000048 secs -- (1.128152 secs total)]
[prepping command took 0.000119 secs -- (1.128271 secs total)]
[running command part 1 took 0.000540 secs -- (1.128811 secs total)]
[running command part 2 took 0.147447 secs -- (1.276258 secs total)]
[prepping command part 0 took 0.000544 secs -- (1.276802 secs total)]
[prepping command part 1 took 0.001895 secs -- (1.278697 secs total)]
[prepping command part 2 took 0.000417 secs -- (1.279114 secs total)]
[prepping command part 0 took 0.000177 secs -- (1.279291 secs total)]
[prepping command part 1 took 0.002491 secs -- (1.281782 secs total)]
[prepping command part 2 took 0.000376 secs -- (1.282158 secs total)]
[prepping command part 0 took 0.000177 secs -- (1.282335 secs total)]
[prepping command part 1 took 0.001084 secs -- (1.283419 secs total)]
[prepping command part 2 took 0.000348 secs -- (1.283767 secs total)]
[prepping command part 2 took 0.000141 secs -- (1.283908 secs total)]
[prepping command part 3 took 0.000695 secs -- (1.284603 secs total)]
[prepping command part 4 took 0.000257 secs -- (1.284860 secs total)]
[prepping command part 5 took 0.000467 secs -- (1.285327 secs total)]
[prepping command part 6 took 0.000034 secs -- (1.285361 secs total)]
[prepping command part 7 took 0.000582 secs -- (1.285943 secs total)]
[prepping command took 0.000151 secs -- (1.286094 secs total)]
[running command part 1 took 0.000813 secs -- (1.286907 secs total)]
[running command took 0.483902 secs -- (1.770809 secs total)]


Created by rlpowell. Last Modification: Friday 16 of June, 2006 18:12:42 GMT by rlpowell.