西西河

主题:Lua 语言? -- GUNXU

共:💬18 🌺22
全看分页树展 · 主题 跟帖
家园 数值运算的语言 --- Lua

前几天,还在担心 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 帖 引用 (帖内工具实现)
全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河