[Opensim-dev] Severely Decreased LSL Script Performance from 0.6.5 -> 0.6.6 -> 0.6.7

Shack Dougall shack at liferain.com
Tue Oct 6 21:03:05 UTC 2009


One part of Prim Composer is an LSL-based rezzing system that creates a 
build from notecard data.
http://liferain.com/downloads/primcomposer/

In OpenSim 0.6.5, this system worked almost as good as in Second Life.  
Unfortunately, it does not work well in 0.6.6 and is unusable in 0.6.7

*Test Platform*: Standalone, Windows XP, MySQL, ODE Physics, 
Meshmerizer.  Other than this I use the defaults.

So, the question is "What is causing the problem?"  What has changed 
since 0.6.5 that causes the LSL rezzer to perform so badly?

I have verified that the script engine defaults have not changed.

*How the rezzer works*

The rezzer contains linksets with various numbers of prims, e.g., 
Linkset-10 is a linkset with 10 prims in it. 

1. The rezzer reads data out of a notecard. It sees how many prims 
should be in the next linkset and rezzes a linkset from its inventory 
with that number of prims.
2. When the linkset rezzes, the root prim tells the rezzer that it is 
alive and the rezzer sends it the UUID and line number of a notecard to 
read via chat.  At this point, the rezzer goes back to Step 1.
3. The root prim then sends a link message to its children telling them 
the UUID and a line number to read.
4.  Each prim in the linkset then reads their data independently from 
the notecard and then performs llSetPrimitiveParams to transform 
themselves into the shape determined by the notecard data.

It's actually a lot more complicated than that, but you get the idea.  
So, lots of prims are being rezzed very quickly via LSL and each prim 
has a script in it that reads notecard data and sets params.

In 0.6.5, this process runs very smoothly--prims and scripts are created 
and execute quickly.  In 0.6.6 and above, something is happening that 
drastically slows this process down.  Either the prims are rezzing 
slower, or the scripts are starting slower or the scripts are executing 
slower.

In any event, the difference is extreme.  It is bad in 0.6.6 and seems 
to be even worse in 0.6.7.

Does anyone have any ideas or suggestions?  Is this a bug?  Is it an 
inevitable fact of life?  Can it be improved?  What can I do to help 
with the process?

I'm more than happy to create a video showing the difference.  The LSL 
scripts are open source.  I can also set you up with some test data and 
a copy of my maxport utility if anyone wants to try to reproduce it.  It 
is very easy to do.

Thanks in advance!  --Shack



More information about the Opensim-dev mailing list