2015年1月20日

共享 lua state 中的数据

摘要: 今天和倩女幽魂的同事讨论一个问题:他们的游戏 client 中,有大量策划填写的表格直接导入 lua state 中的大量数据。大约有 100M 以上。这样,如果玩家在一台机器上启动多个 client ,就会占用大量的内存。而这些数据,一旦加载进 lua ,就不会再修改,且每个 client 中数据... 阅读全文

posted @ 2015-01-20 14:13 &大飞 阅读(517) 评论(0) 推荐(0)

Lua数据结构 — lua_State(六)

摘要: 作者:罗日健前面各种Lua的数据类型基本都说得差不多了,剩下最后一个数据类型:lua_State,我们可以认为是”脚本上下文”,主要是包括当前脚本环境的运行状态信息,还会有gc相关的信息。Lua这门语言考虑了多线程的情况,在脚本空间中能够开多个线程相关脚本上下文,而大家会共用一个全局脚本状态数据,如... 阅读全文

posted @ 2015-01-20 01:34 &大飞 阅读(7918) 评论(0) 推荐(0)

Lua数据结构 — Udata(五)

摘要: 作者:罗日健Udata负责存储userdata的数据,这部分其实很简单,但是为了保证系列文章的完整性,还是写一篇出来补全。下面是Udata的数据结构:意义:CommonHeader:和与TValue中的GCHeader能对应起来的部分metatable:userdata的元表,和table的元表一样... 阅读全文

posted @ 2015-01-20 01:33 &大飞 阅读(795) 评论(0) 推荐(0)

Lua数据结构 — 闭包(四)

摘要: 作者:罗日健前面几篇文章已经说明了Lua里面很常用的几个数据结构,这次要分享的也是常用的数据结构之一 –函数的结构。函数在Lua里也是一种变量,但是它却很特殊,能存储执行语句和被执行,本章主要描述Lua是怎么实现这种函数的。在脚本世界里,相信闭包这个词大家也不陌生,闭包是由函数与其相关引用环境组成的... 阅读全文

posted @ 2015-01-20 01:31 &大飞 阅读(514) 评论(0) 推荐(0)

Lua数据结构 — Table(三)

摘要: 作者: 罗日健前面(一)、(二)里面其实已经把一些常用的数据类型(数值、布尔、字符串)说明了,这次要描述的是Table,Table在Lua里是一种常用的数据类型,是Lua里的精髓之一,其效率必须得到保证,而实现这种支持任意类型key和value的Table也是较为复杂的。一, Table的设计思想:... 阅读全文

posted @ 2015-01-20 01:30 &大飞 阅读(2615) 评论(0) 推荐(0)

Lua数据结构 — TString(二)

摘要: 作者:罗日健存储lua里面的字符串的TString数据结构:(lobject.h 196-207)其它结构中也会有L_Umaxalign dummy这个东西,来看看L_Umaxaliagn:从字面意思上就是保证内存能与最大长度的类型进行对齐,事实上也是做这件事,这里感觉lua想给各种不同设备做一种嵌... 阅读全文

posted @ 2015-01-20 01:29 &大飞 阅读(685) 评论(0) 推荐(0)

Lua数据结构 — TValue(一)

摘要: 作者:罗日健数据结构的设计,在一定程度上奠定了整个系统的设计,所以决定写一个对Lua主要数据结构的分析文章,本来打算写一篇就好了,但是每个数据类型其实都有点复杂,一篇的话篇幅太长,所以就拆开几篇来写了。为什么是从TValue说起,TValue是实现Lua弱数据类型的主要数据结构,不但在脚本中的值使用... 阅读全文

posted @ 2015-01-20 01:28 &大飞 阅读(817) 评论(0) 推荐(0)

Step By Step(Lua数据结构)

摘要: Lua中的table不是一种简单的数据结构,它可以作为其它数据结构的基础。如数组、记录、线性表、队列和集合等,在Lua中都可以通过table来表示。 1. 数组: 使用整数来索引table即可在Lua中实现数组。因此,Lua中的数组没有固定的大小,如: a = {} for i = 1, 100... 阅读全文

posted @ 2015-01-20 01:08 &大飞 阅读(252) 评论(0) 推荐(0)

导航