与Lua的第一次接触
2009 10 31 10:16 PM 3341次查看
分类:无 标签:无
据我所知,Lua的优势是体积小、速度快,但和JavaScript(特别是在V8下)相比并无优势,二者在我看来是差不多的。不过Lua的库可以用扩展,可以和C等语言打交道;而JavaScript由于权限问题,连文件操作都不支持;但这也算不上Lua的优点,毕竟功能上比起Python来还差远了。
然而昨天发现谷歌拼音输入法支持Lua扩展了,于是又对Lua产生了一些兴趣,便又摸索了一下。顺带一提,学习Python也是因为当时它是Google App Engine上唯一支持的语言,看来Google才是我学习的动力啊…
在官网上逛了下,首先发现的是Lua for Windows,不过15.7MB的体积让我大吃一惊,居然比Python的安装文件还大…看了一下库列表,我基本都用不到。因为本来就只是想玩玩而已,所以那么大我自然就无视掉了。
接着就去下载Lua Binaries了,212KB,在我可接受范围内。
解压后发现几个exe文件,猜测lua5.1.exe就是执行文件,于是运行了一下,发现进入命令行模式了。
于是敲了个hello world程序,顺利通过了;然而却不知怎么退出,于是只好关掉CMD…
接着写了个程序,保存成lua格式,用lua5.1.exe运行了一下,发现也通过了,看来和Python很相像。顺带一提,这点比Ruby要好:初学者肯定先运行ruby.exe,敲了半天回车没反应,一查文档才知道,应该是用irb.bat。
然后又试了下luac.exe,只是编译成了一个中间文件,但仍不是原生代码。
值得一提的是,经过测试发现,运行Lua程序只需要lua5.1.exe(44KB)和lua5.1.dll(164KB)这2个文件即可,一共才208KB,压缩成7zip只有71KB,比Python动辄几MB的包小多了。
看来在发布小程序时,用Lua会有利些。(如果不加其他库的话。)
接着就想测试性能了,于是将2007年英特尔多核平台编程优化大赛题照着Python的版本改写了一遍。
改写时主要是看怎么提高数组的访问性能,但实际上并没有找到相关的文章,连设置table的初始大小都不知道咋弄。好在这个程序初始化并不计入总时间内,所以也就懒得纠缠了。
另外还惊奇地发现Ruby的代码块是从Lua里学来的,当时我还对这个设计赞不绝口呢…
最终的代码在《C++/C++ CLR/C#/Java/Python/JavaScript/Lua性能测试》,性能比Python好很多,不过得无奈地写上end语句。
接着又想去试试LuaJIT了,只有419KB,解压发现只有源代码。
好在我装了MinGW,在解压后的文件夹里(含Makefile)运行mingw32-make mingw,等待一段时间后便编译完成了。
进入src文件夹就能看到luajit.exe和lua51.dll,把这2个玩意copy出来就能用了,一共256KB。不过要使用-O优化参数的话,还得带上一个65.5KB的jit文件夹。
比起Lua要快1倍以上,但对异常的支持不够好,语法错误时也经常给错行号。
要说的差不多就这些了,感觉偶尔用Lua写点玩意也不错,毕竟体积小,无需安装,传给别人用时比较方便~
向下滚动可载入更多评论,或者点这里禁止自动加载。