MOO-cows Mailing List Archive


Re: A few optimization questions...

Don Schwarz writes:
> things... First of all, is something like:
>   index("DF-BP-FC-BC-PP-PH-UL-IN", "BP")
> significantly faster than:
>   "BP" in {"DF", "BP", "FC", "BC", "PP", "PH", "UL", "IN"}

Yes, because the server is stupid and reconstructs that list of strings each
time this expression is evaluated.  If the list was already computed and, say,
stored in a property, then these two would be very close in speed.

> Also, is:
>   <some large string> in { <a list of about 25 equally large strings> }
> faster (and less CPU intensive) than:
>   string_hash( <some large string> ) in { <a list of 25 MD5 hashes> }

Good god, yes!  All of the MD5 functions are *much* slower than the other
simple operations.  Have you *seen* the complexity of that function?!

> And lastly, would it be worthwhile to write a special built-in function for
> something that runs approx. 10 times per call to $player:notify, to be used
> instead of:
>   match(foo, "%[%w%w:[a-zA-Z0-9:_]*%]")[1..2]

Gack!  It would be better to simply get rid of the necessity to do this on
every :notify.  It's not terrible, but it's not great, either.  Writing this as
a built-in would not be trivial, though.


Follow-Ups: References:

Home | Subject Index | Thread Index