Lua 5.2.1 的一处改变
Lua 5.2.1 正式发布有段时间了。虽然相对于 5.2.0 只是一个小版本的提升,但也是有些东西可以拿出来讲讲的。
比如,在这次小版本更新中,字符串类型被分为了长字符串和短字符串两类。长字符串(大于 40 字节的字符串),不再做内部化处理了。
一开始我以为这是为了性能的一处小改进,可以在字符串处理比较多的场合,少做一些 hash 计算和 hash 表插入。后来查了一下邮件列表发现,其实是为了安全性,防止别人做 hash dos 攻击。一起改变的是字符串的 hash 过程使用了一个随机种子。默认设定和时间有关。值得注意的是,这处改变可能会使得嵌入 lua 的程序每次运行的内存状态不一致,有可能给调试带来一定的麻烦。
Comments
Posted by: lowcost | (6) August 3, 2012 05:42 PM
Posted by: : ) dora | (5) July 19, 2012 02:53 PM
Posted by: 好看的小说 | (4) July 13, 2012 03:10 PM
Posted by: remainbeen | (3) July 12, 2012 10:33 AM
Posted by: Jonee | (2) July 12, 2012 10:22 AM
Posted by: yugi | (1) July 12, 2012 09:11 AM