主题:Lua 语言? -- GUNXU
前几天,还在担心 LuaJIT 的更新速度,今天浏览项目网站时却仅惊喜地发现 LuaJIT 又出了2.0.0beta6版本。新版本除了增加了对PowerPC e500v2 内核的支持外,最大的亮点就是增加了FFI函数库。利用这个函数库,LuaJIT可以在Lua程序内流畅的调用外部C/C++函数库的函数以及直接定义并利用C/C++数据结构。直接的好处是方便了扩展库的开发,使得Lua程序员可以更少的依赖C/C++语言环境。间接的好处是开发者在纯Lua环境里有更多的手段提高运行效率和内存使用效率。因为C/C++的数据结构是静态类型,这给JIT引擎足够信息以使其采用更好的优化策略,另外内存表示没有Lua额外的开销,数据更紧凑,占用空间更少,运行时缓存击中率更大,速度相应更快。
FFI+的优点清除了纯粹利用Lua作数值计算在原理上的障碍.因为在数值运算单元里我们可以直接作用在C/C++数据结构上.JIT可以帮助我们以C速度甚至以超C速度运行(因为JIT的动态优化).当然,在LuaJIT里的效果究竟如何还要看LuaJIT本身的实现,有时间会做个测试.
这个进步也去处了我的系统里@Accelerator{} (http://www.ccthere.com/article/3282394)的必要性和紧迫性,虽然我们的@Accelerator模式构想更高效,更安全,更容易维护(这是在更加限制支持的数据结构和数据操作方式的代价上的取舍)。
本帖一共被 1 帖 引用 (帖内工具实现)
还没有来得急自己测试,已经有人测试了LuaJit用纯Lua代码实现常微分方程数值解,并且比较了与gcc编译的c代码的运行速度。不出意外结果很好,意外的是居然是在window环境下是c速度的两倍。
http://lua-users.org/lists/lua-l/2011-02/msg00668.html
关注数值运算的朋友们,咱们还等什么呢,换语言吧!
当然lua比python,matlab还有不足,数值函数库不发达,可是numlua已勉强可用,http://numlua.luaforge.net/
gsl-luabinding 也已存在,http://savannah.nongnu.org/projects/gsl-shell/
实在不济,先用lua-python调用numpy,scipy对付着,等以后lua赶上再换。http://niemeyer.net/lunatic-python
lua里调用numpy的例程
http://stackoverflow.com/questions/388172/scientific-libraries-for-lua
我们再来看看换语言的好处
1。比c强的是语言是动态的,不用自己管理内存,代码量少,开发,改错,应用容易。一句话,好学好用好折腾。
2。比python好的地方是,语言效率高,接近c语言速度,比python快10,20倍。完全可以胜任绝大多数科学计算,数据处理的要求,语言痕迹小,需要的硬件少,是手持设备,电力设备,通信设备,机器人,工业控制,实时系统应用的利器!
3。比matlab的好处是,免费,是一个一般应用语言,可以写大系统,复杂应用,在计算外的支持广泛得多,特别的界面支持,网路支持,matlab简直是悲剧。免费跨平台支持。对多系统分布运算,matlab恐怕不是一个选择。
4。对喜欢自己折腾的个人企业,它是一个开发适于自己需要的语言的绝佳平台。
不足:
现阶段社区还小,库不多。但如果大家一起关注,参与,我们的日子会越来越好
1。
本帖一共被 1 帖 引用 (帖内工具实现)
Lua的版本分裂,Luajit停止开发,扩展包的生态没有发展。是三根压垮骆驼的稻草。
python 依旧繁茂。我想要实现的jit decorator已经被numba实现开源。人生基本圆满。可惜了-Lua语言和曾经的Luajit的小巧优雅强悍