您的位置:首页 > 编程语言 > Lua

lua程序性能优化(局部变量使用)

2013-12-17 18:14 316 查看
1、局部变量优化

代码一

for i = 1, 1000000 do
local x = math.sin(i)
end

编译后代码


1 [1] LOADK 0 -1; 1
2 [1] LOADK 1 -2; 1000000
3 [1] LOADK 2 -1; 1
4 [1] FORPREP 0 4 ; to 9
5 [2] GETGLOBAL 4 -3; math
6 [2] GETTABLE4 4 -4; "sin"
7 [2] MOVE5 3
8 [2] CALL4 2 2
9 [1] FORLOOP 0 -5; to 5
10[3] RETURN0 1
代码二

local sin = math.sin

for i = 1, 1000000 do
local x = sin(i)
end
编码后代码

1 [1] GETGLOBAL 0 -1; math 循环中的代码被放在外部执行
2 [1] GETTABLE0 0 -2; "sin"
3 [2] LOADK 1 -3; 1
4 [2] LOADK 2 -4; 1000000
5 [2] LOADK 3 -3; 1
6 [2] FORPREP 1 3 ; to 10
7 [3] MOVE5 0循环中增加了移动的代码
8 [3] MOVE6 4
9 [3] CALL5 2 2
10[2] FORLOOP 1 -4; to 7
11[4] RETURN0 1


可以看出GETGLOBAL、GETTABLE两个操作被移到了循环之外,而增加了一个MOVE操作,这样为代码的执行节省了时间。


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: