上节说到了 lua_dofile 执行脚本文件,或者编译过的脚本二进制文件。 这节看下,Lua 是如何区别这两种文件的,以及虚拟机在开始执行字节码之前,程序里面都发生了什么? lua.c 里面的调用了 lua_dofile 来执行文件...
分类:
其他好文 时间:
2014-10-16 22:14:53
阅读次数:
150
php的语法分析的主要作用是验证词法分析的基础上将token组成的序列,在php这门语言中是否是一个有效的句子,也可以理解为这些token序列是否匹配设计php这门语言时的语法模型,在匹配的情况下构建具体的程序(组建opcode),以供编译后期使用。 比如:在设计php语言时,需要设计一套语法...
分类:
Web程序 时间:
2014-09-24 20:42:17
阅读次数:
397
chmod----改变一个或多个文件的存取模式(mode)chmod [options] mode files只能文件属主或特权用户才能使用该功能来改变文件存取模式。mode可以是数字形式或以who opcode permission形式表示。who是可选的,默认是a(所有用户)。只能选择一个opc...
分类:
系统相关 时间:
2014-09-24 16:00:36
阅读次数:
211
在语法分析 lua_parse 之后,调用 lua_execute 来执行语法分析生成的字节码。 虚拟机的指令是一个枚举型,就是在 opcode.h 中的 OpCode, 通过 lua_execute 中的那个 switch case 来看下指令对应的操作。 > PUSHNI...
分类:
其他好文 时间:
2014-09-14 02:38:16
阅读次数:
250
分析一下 lua 中常用的几个数据结构: 先看一下 opcode.h 中的: typedef?unsigned?char?Byte;
typedef?unsigned?short?Word;
typedef?union
{
?struct?{char?c1;?char?c2;}?m;
?Word?w;
}?CodeW...
分类:
其他好文 时间:
2014-09-11 13:59:42
阅读次数:
234
先来看一下 Lua 中常用的几个数据结构: 先看一下 opcode.h 中的: Type 枚举是 Lua 中的几种数据类型。 Value 联合体是 Lua 的数据类型定义。 Object 带标签的数据类型,其中 tag 字段是 Type 类型,Value 是 Ob...
分类:
其他好文 时间:
2014-08-27 14:53:38
阅读次数:
184
在php运行期间,php引擎要对php源码进行处理,(词法分析,语法分析等)然后生成opcode。然后再运行。在这个阶段可以把opcode缓存起来,当下次需要运行这段程序的时候,就避免了再次 进行词法分析,语法分析,直接拿opcode来用。eAccelerator就是这样的程序。用vld查看php的...
分类:
Web程序 时间:
2014-08-13 18:20:26
阅读次数:
260
Xcache是一个使用比较多的Opcode缓存器,很多时候,我们为了让脚本的执行效率更加高,可以采取这种缓存器,它可以让脚本引擎不用每次都去编译执行,可以在一次编译后,把Opcode缓存起来,直接去执行,效率会提升30%-40%左右,当PHP文件被更改过以后,Xcache会自动讲该文件的缓..
分类:
其他好文 时间:
2014-08-09 02:43:37
阅读次数:
308
chmod----改变一个或多个文件的存取模式(mode)chmod [options] mode files只能文件属主或特权用户才能使用该功能来改变文件存取模式。mode可以是数字形式或以who opcode permission形式表示。who是可选的,默认是a(所有用户)。只能选择一个opc...
分类:
系统相关 时间:
2014-08-08 21:18:06
阅读次数:
340
chmod----改变一个或多个文件的存取模式(mode)chmod[options]modefiles只能文件属主或特权用户才能使用该功能来改变文件存取模式。mode可以是数字形式或以whoopcodepermission形式表示。who是可选的,默认是a(所有用户)。只能选择一个opcode(操作码)。可指定多个mode,以逗号分..
分类:
其他好文 时间:
2014-08-05 14:24:20
阅读次数:
298