LSL Script Efficiency: Difference between revisions
Jump to navigation
Jump to search
| Line 20: | Line 20: | ||
<pre> | <pre> | ||
integer time() { | integer time() { | ||
string stamp = llGetTimestamp(); | string stamp = llGetTimestamp(); | ||
| Line 29: | Line 30: | ||
state_entry() { | state_entry() { | ||
float i = 0; | float i = 0; | ||
float max = | float max = 10000; // The larger the number here the better. | ||
float current = time(); | float current = time(); | ||
while (i < max) { | while (i < max) { | ||
| Line 35: | Line 36: | ||
} | } | ||
float t = (time()+-current)/max; | float t = (time()+-current)/max; | ||
llOwnerSay("The function | llOwnerSay("The function in the loop took a total of " + (string)t + " milliseconds."); | ||
} | } | ||
} | } | ||
Revision as of 20:03, 15 May 2007
| LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
What is Efficiency
PAGE UNDER CONSTRUCTION!
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) * 1000.0);
}
default {
state_entry() {
float i = 0;
float max = 10000; // The larger the number here the better.
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
++a and a += 1 are equal in speed (they compile to the same bytecode). a++ is slower.