My project is simple enough - something like throwing a ball off a cliff with a horizontal impulse and recording its speed. It's for high school physics teachers/students.
It seems to me that I can either have a fast timer that simulates the movement and generates points, or I can have a fast timer that trusts the physics engine to provide an accurate simulation and records its output :) I will look into the Timer.cs file and try out C# scripting tomorrow, then get back to you. Thanks for the help! On Sat, Dec 4, 2010 at 6:23 AM, dz <[email protected]> wrote: > I'd have to agree with Justin... > > Expecting event handling to be optimized is too optimistic, but there are > alternatives. The .Net/Mono libraries already include timer functions that > support fast and accurate timing. > > Relying on an LSL event trigger to happen every 4 frames MAY work in SL but > it is a design begging to cause lag and stop itself. Designs like that are > also susceptible to event buffer overflows where your events are "lost", > leaving you to wonder why your "reliable" script sometimes just isn't.. > The ONLY LSL events I have seen requiring sub-second repeats would be in > an AO, but timer based AO's are obsoleted in OpenSim by the use of the > Animation_Changed event. > > In the extreme, if you are trying to be very exact,, you would want to > insure the timings were made by processes independent of the region time > dialations, not the ones that may be responsible for them. > > > > On Fri, Dec 3, 2010 at 5:35 PM, <[email protected]> > wrote: >> >> ---------- Forwarded message ---------- >> From: Jorge Lima <[email protected]> >> >> Subject: [Opensim-users] Slow LSL timers >> 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? :) >> >> >> >> ---------- Forwarded message ---------- >> From: Justin Clark-Casey <[email protected]> >> To: [email protected] >> Date: Sat, 04 Dec 2010 01:35:32 +0000 >> Subject: Re: [Opensim-users] Slow LSL timers > > >> >> 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. >> > > _______________________________________________ > Opensim-users mailing list > [email protected] > https://lists.berlios.de/mailman/listinfo/opensim-users > > _______________________________________________ Opensim-users mailing list [email protected] https://lists.berlios.de/mailman/listinfo/opensim-users
