LSL Constants vs Globals
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.
Constant | Global |
---|---|
<lsl> dead(){ key a = NULL_KEY; key b = NULL_KEY; key c = NULL_KEY; key d = NULL_KEY; } default { state_entry() { llOwnerSay((string) llGetFreeMemory()); } }</lsl> |
<lsl>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()); } }</lsl> |