lua
donnyxia1128
学无止境;
展开
-
lua垃圾回收机制
标记和清扫Lua是一门自动内存管理的语言,它使用的是经典的标记和清扫算法。这个算法的原理其实非常简单,在我们的编程实践中或多或少都有类似的做法,一个理想的实现是这样的:明确对象模型和关系:统一对象模型,比如Lua所有类型的对象都统一为TValue。 所有动态分配的对象串连成一个链表(或多个)。 程序中有少数几个根集对象,比如Lua里的注册表,主线程等,这些根集对象再去引用其他对象,...转载 2020-03-10 20:15:40 · 985 阅读 · 0 评论 -
tolua++的使用
研究了一下tolua++,发现还不错,用来导出枚举、函数、对象都很方便,编译过程如下:1,到tolua++官网下载源码,用src/lib目录下的文件建立一个lib工程,这个工程需要引用lua5.1.4的头文件。2,编译后得到tolua.lib文件。3,用src/bin原创 2011-05-27 22:51:00 · 5042 阅读 · 0 评论 -
脚本语言性能比较:Ruby,Io,PHP,Python,Lua,Java,Perl...
Ruby, Io, PHP, Python, Lua, Java, Perl, Applescript, TCL, ELisp, Javascript, OCaml, Ghostscript, and C Fractal BenchmarkI've always enjoyed fractals, and was curious if scripting languages were up t原创 2011-05-26 14:51:00 · 5442 阅读 · 0 评论 -
探索Lua5.2内部实现:Garbage Collection
探索Lua5.2内部实现:Garbage Collection(1) 原理 目录(?)[+]基本算法Incremental Garbage CollectionLua5.2采用垃圾回收机制对所有的lua对象(GCObject)进行管理。Lua虚拟机会定期运行GC,释放掉已经不再被被引用到的lua对象。基本算法基本的垃圾回收转载 2013-10-28 20:59:50 · 827 阅读 · 0 评论 -
Lua 虚拟机指令
Lua 虚拟机指令Lua运行代码时,首先把代码编译成虚拟机的指令("opcode"),然后执行它们。 Lua编译器为每个函数创建一个原型(prototype),这个原型包含函数执行的一组指令和函数所用到的数据表。1从Lua5.0开始,Lua使用基于寄存器的虚拟机(虚拟机主要分为基于寄存器的和基于栈的)。 为了分配寄存器使用时的activation record,这个虚拟机也使用到了栈。转载 2013-12-23 14:56:48 · 3303 阅读 · 0 评论 -
Lua性能优化技巧
和在所有其他编程语言中一样,在Lua中,我们依然应当遵循下述两条有关程序优化的箴言:原则1:不要做优化。原则2:暂时不要做优化(对专家而言)。这两条原则对于Lua编程来说尤其有意义,Lua正是因其性能而在脚本语言中鹤立鸡群。当然,我们都知道性能是编程中要考量的一个重要因素,指数级时间复杂度的算法会被认为是棘手的问题,绝非偶然。如果计算结果来得太迟,它就是无用的结果。因此,每转载 2014-01-21 10:56:37 · 18914 阅读 · 2 评论 -
详解C调用lua脚本效率测试
详解C调用lua脚本效率测试C调用lua脚本效率测试是本文要介绍的内容,以下代码以C语言为基准,测试了C调用Lua循环和循环调用Lua的效率。结论是不要频繁地穿越C/Lua边界.#include time.h> extern "C" { #include "lua.h" #include "lualib.h" #include "lauxlib.h原创 2014-04-15 17:17:10 · 3326 阅读 · 1 评论