存档
-
Lua Performance Tips(译文)- 3R原则
当处理Lua资源时,我们应当遵守跟利用地球资源一样的3R原则(Reduce, reuse, recycle)。
2011年11月10日 | 归档于 Lua, Programming标签: Lua -
Lua Performance Tips(译文)- 关于字符串
Lua实现字符串的方式和大多数其他的脚本语言有两点重要的区别。其一,Lua的字符串都是内化的(internalized);这意味着字符串在Lua中都只有一份拷贝。每当一个新字符串出现时,Lua会先检查这个字符串是否已经有一份拷贝,如果有,就重用这份拷贝。内化(internalization)使字符串比较及表索引这样的操作变得非常快,但是字符串的创建会变慢。
2011年11月10日 | 归档于 Lua, Programming标签: Lua -
Lua Performance Tips(译文)- 关于表
Lua实现表的算法颇为巧妙。每个表包含两部分:数组(array)部分和哈希(hash)部分,数组部分保存的项(entry)以整数为键(key),从1到某个特定的n,(稍后会讨论n是怎么计算的。)所有其他的项(包括整数键超出范围的)则保存在哈希部分。
2011年11月10日 | 归档于 Lua, Programming标签: Lua -
Lua Performance Tips(译文)- 基本要素
也许你已从他处得知,自5.0版起,Lua使用了一个基于寄存器的虚拟机。这些"寄存器"跟CPU中真实的寄存器并无关联,因为这种关联既无可移植性,也受限于可用的寄存器数量。Lua使用一个栈(由一个数组加上一些索引实现)来存放它的寄存器。每个活动的(active)函数都有一份活动记录(activation record),活动记录占用栈的一小块,存放着这个函数对应的寄存器。因此,每个函数都有其自己的寄存器。由于每条指令只有8个bit用来指定寄存器,每个函数便可以使用多至250个寄存器。
2011年11月10日 | 归档于 Lua, Programming标签: Lua