Difference between revisions of "LSL Script Efficiency"
Jump to navigation
Jump to search
Line 43: | Line 43: | ||
== Efficiency == | == Efficiency == | ||
<div style="padding: 0.5em;"> | <div style="padding: 0.5em;"> | ||
++a and a += 1 are equal in speed | In theory, ++a and a += 1 are equal in speed, however this is not true: | ||
++a: 0.364700 millis | |||
a += 1: 0.346900 millis | |||
a++: 0.413700 millis | |||
Testing the same function in for loops: | |||
++a: 0.358370 millis | |||
a += 1: 0.351200 millis | |||
a++: 0.424600 millis | |||
</div></div> | </div></div> |
Revision as of 20:21, 15 May 2007
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
What is Efficiency
Efficiency is how long it takes to run a script.
There are many ways to speed up scripts, such as using ++a instead of a++.
Rules for posting
The following code snipit will allow testing of a function.
integer time() { string stamp = llGetTimestamp(); return (integer) llGetSubString(stamp, 11, 12) * 3600000 + (integer) llGetSubString(stamp, 14, 15) * 60000 + llRound((float)llGetSubString(stamp, 17, -2) * 1000000.0)/1000; } default { state_entry() { float i = 0; float max = 10000; float current = time(); while (i < max) { ++i; } float t = (time()+-current)/max; llOwnerSay("The function in the loop took a total of " + (string)t + " milliseconds."); } }
Efficiency
In theory, ++a and a += 1 are equal in speed, however this is not true:
++a: 0.364700 millis a += 1: 0.346900 millis a++: 0.413700 millis
Testing the same function in for loops:
++a: 0.358370 millis a += 1: 0.351200 millis a++: 0.424600 millis