[Opensim-users] Slow LSL timers

Justin Clark-Casey jjustincc at googlemail.com
Sat Dec 4 01:35:32 UTC 2010


I'm not familiar with the this area of the code but I had a quick look since I was curious (the meat is in 
OpenSim/Region/ScriptEngine/Shared/Api/Plugins/Timer.cs).  The code isn't using C# timers so I'm not totally surprised 
at the behaviour that you're seeing.

I suspect addressing this would require a considerably different implementation.

On 03/12/10 17:18, Jorge Lima wrote:
> Ran 100 timer events with a single if(++i>  100) inside. I suppose
> decrementing and comparing to 0 might be faster, but I also
> copy-pasted 100 inlined if clauses and the time to run them was
> negligible.
>
> llSetTimerEvent(0.1) ->  59 s ->  490% overhead
> llSetTimerEvent(0.2) ->  59 s ->  195% overhead
> llSetTimerEvent(0.5) ->  59 s ->  18% overhead
> llSetTimerEvent(0.75) ->  81 s ->  8% overhead
> llSetTimerEvent(1.0) ->  108 s ->  8% overhead
> llSetTimerEvent(2.0) ->  209 s ->  4.5% overhead
> llSetTimerEvent(4.0) ->  407 s ->  1.75% overhead
>
> I am guessing that the overhead is, therefore, internal to the timer
> implementation. I haven't tested raw C# timers as comparison but 100ms
> is an eternity in modern computing, I can ping servers across the
> Atlantic ocean in less than that!
>
> I went through the code but I haven't yet found the part that handles
> timers. It's not in EventManager.
> Does anyone know what's going on? The code works fine in SL.
> Should I be posting this in the dev list? I'd like to see if I can fix it.
> Any thoughts on how to get fast timers in OpenSim?
> Faster computer? (I did check and was only getting about 20% CPU usage...)
> Porting them to a Real-Time operating system? :)
> _______________________________________________
> Opensim-users mailing list
> Opensim-users at lists.berlios.de
> https://lists.berlios.de/mailman/listinfo/opensim-users
>


-- 
Justin Clark-Casey (justincc)
http://justincc.org
http://twitter.com/justincc



More information about the Opensim-users mailing list