lua程序性能优化(局部变量使用)
2013-12-17 18:14
316 查看
1、局部变量优化
代码一
local sin = math.sin
可以看出GETGLOBAL、GETTABLE两个操作被移到了循环之外,而增加了一个MOVE操作,这样为代码的执行节省了时间。
代码一
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操作,这样为代码的执行节省了时间。
相关文章推荐
- 使用Lua 局部变量来优化性能,同一时候比較局部变量和全局变量
- 使用Lua 局部变量来优化性能,同时比较局部变量和全局变量
- lua程序性能优化(尾调用)
- * java程序性能优化 Posted on 2010-07-28 16:04 chinaifne 阅读(2246) 评论(0) 编辑 收藏 一、避免在循环条件中使用复杂表达式
- 使用pprof及Go 程序的性能优化
- gprof使用介绍-优化程序性能
- 【设计优化】-使用缓存(Cache)提高程序性能
- delphi中使用指针优化程序性能
- 使用MPGO和NGEN来优化C#桌面程序的启动性能
- Go 程序的性能优化及 pprof 的使用
- 使用数据库连接池优化程序性能
- 使用数据库连接池优化程序性能
- lua程序性能优化(table的初始化)
- 获得性能大幅提升的go程序优化实践,火焰图使用
- 第二十二讲 使用缓存优化程序性能
- 使用数据库连接池优化程序性能
- [C++应用程序性能优化]程序使用内存区
- 使用数据库连接池优化程序性能
- 使用数据库连接池优化程序性能
- 使用OSCache优化程序性能