In many AddOns I see people doing stuff like that:
Lua Code:
local_G=_G;
local wipe =table.wipe;
localremove=table.remove;
....
Whats the big advantage of that? Is it affecting the performance? The memory usage?
Is it for better readability? Just generally: Whats the reason for that?
The global environment is basically stored in a big table. Every time you want to read from this table you perform a table indexing operation, which takes a small amount of time. However, if code is run very often (think combat log events or every frame render), you may want to shave off as much time as possible. Local variables are stored as Lua registers, which are much quicker to access than the global environment.
Note: table.wipe and others like this cause more than one indexing operation as denoted by the dot. The first is retrieving table from the global environment and the second is to index wipe from table. Creating a local reference of this saves 2 indexing operations as a result.
The global environment is basically stored in a big table. Every time you want to read from this table you perform a table indexing operation, which takes a small amount of time. However, if code is run very often (think combat log events or every frame render), you may want to shave off as much time as possible. Local variables are stored as Lua registers, which are much quicker to access than the global environment.
Note: table.wipe and others like this cause more than one indexing operation as denoted by the dot. The first is retrieving table from the global environment and the second is to index wipe from table. Creating a local reference of this saves 2 indexing operations as a result.