MOO-cows Mailing List Archive


Server slowing down on alphas; Profiling

On our Dec Alpha 3000, I've observed the MOO server slowing down significantly
the longer it's been up.  I once ran a test function which took 120 seconds
(measured by comparing the value of time() at its start and end) and after a
reboot it took 24 seconds!

There is no one else using the machine or the MOO.  I'm running LambdaMOO

Pavel suggested this might be caused by the alpha's malloc, and suggested we
switch to gnu malloc.  I think that has helped, but I'm not sure.  It's hard
to tell without good profiling tools.

Anyone else observed this problem?  Any suggestions on what to do about it?

Any suggestions for how to do some simple profiling of MOO code?
Any tips on how to optimize MOO code?

The only stable, reliable measure I've found so far is to automatically add a
call to a 'count' function to every verb in the db.  Then I figure out
which functions get called a lot, and focus my energies on optimizing those.
This helps, but I'm still flying pretty blind.  

I'm trying to minimize use of nasty things like callers() and match().  But
I'm finding that passing a long list of arguments to a fairly simple function
may be costly.  How to optimize MOO code is not always obvious.  All
suggestions welcome.

-- Amy

Home | Subject Index | Thread Index