LSL Constants vs Globals - Second Life Wiki

LSL Constants vs Globals

From Second Life Wiki

Second Life Wiki > LSL Constants vs Globals
Jump to: navigation, search

There are some advantages in using global variables over the string and key constants; it's faster and uses less bytecode when it is longer than 3 characters and is used more than twice, but it uses more bytecode when it is shorter than 3 characters or is used once. This is easily demonstrated by running the scripts in Figure 1.

Pros

  • Faster
  • Uses less bytecode when it is longer than 3 characters and it used more than twice.

Cons

  • User can accidentally change the value.
  • Uses more bytecode when it is shorter than 3 characters or it used once.


Figure 1: Bytecode Cost
Constant Global
dead(){
    key a = NULL_KEY;
    key b = NULL_KEY;
    key c = NULL_KEY;
    key d = NULL_KEY;
}
 
default {
    state_entry() {
        llOwnerSay((string) llGetFreeMemory());
    }
}
key null_key = NULL_KEY;
 
dead(){
    key a = null_key;
    key b = null_key;
    key c = null_key;
    key d = null_key;
}
 
default {
    state_entry() {
        llOwnerSay((string) llGetFreeMemory());
    }
}