Openresty原理概念篇(九)LuaJIT分支和标准Lua有什么不同

一  LuaJIT分支和标准Lua有什么不同

①  背景

luajit官方   标准lua官方   openresty自身维护的luajit  编译luajit

②  LuaJIT 在 OpenResty 整体架构中的位置

③  标准 Lua 和 LuaJIT 的关系

④  为什么选择LuaJIT

⑤  lua特别之处

1)Lua 的'下标'从'1'开始

2) 使用 '..' 来'拼接'字符串

3) 只有 'table' 这一种'数据'结构

备注: 其它'高级特性'都是基于table模拟出的

补充: 只有在 table 是 '序列 sequence' 的时候,才能返回'正确'的'length'值

pairs和ipairs看table的内部结构

[1] table在'存储值'的时候是按照'顺序'的

备注: 序列'不'应该含有 'nil' 的,array 是可以'包含' nil

[2] 但是在'存储键值对'时候是按照'键的哈希值'存储的,'并不会'按照键的字母顺序或是数字顺序存储

备注: '杂表',即使'元素为空nil'的时候,也会'分配一个key'给它

强调: lua中的table最终在'内存中分配'都是'键值对'的形式

[3] 建议大家'绕着走',把 nil 改为 ngx.null 来'填充数组',不同的 lua 版本会有'不同的行为'

nil、ngx.null、cjson.null、userdata: null

4) 默认是'全局'变量

最佳实践: 在 lua 中'声明变量'时,前面都要加上 'local'

local name = 'wzj'

local xxx = require('xxx')

1、 if必须要'有end',在python和lua之间切换会'很不习惯'

2、 一般一个对象访问属性是'用冒号:',而不是'点.',也会经常性'写错'

⑥  LuaJIT

⑦  小结

⑧  答疑解惑

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要确认 OpenResty 是否安装了 LuaJIT,可以通过以下两种方法进行: 1. 查看 OpenResty 版本信息 打开终端,输入 `openresty -v` 命令,查看 OpenResty 的版本信息: ``` $ openresty -v nginx version: openresty/1.19.9.1 built by gcc 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04) built with OpenSSL 1.1.1g 21 Apr 2020 TLS SNI support enabled configure arguments: --prefix=/usr/local/openresty/nginx --with-http_ssl_module --with-http_v2_module --with-openssl=/usr/local/src/openssl-1.1.1g --with-pcre=/usr/local/src/pcre-8.44 --with-pcre-jit --with-cc-opt='-O2 -fdebug-prefix-map=/data/builder/debuild/nginx-1.19.9/debian/debuild-base/nginx-1.19.9=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -Wl,--as-needed -pie' ``` 如果在命令输出中看到 `built with LuaJIT` 字样,则表示 OpenResty 是使用 LuaJIT 编译的,已经安装了 LuaJIT。 2. 查看 OpenResty Lua 模块 打开终端,输入 `openresty -V` 命令,查看 OpenResty 编译时开启的 Lua 模块: ``` $ openresty -V openresty version: openresty/1.19.9.1 built by gcc 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04) built with OpenSSL 1.1.1g 21 Apr 2020 TLS SNI support enabled configure arguments: --prefix=/usr/local/openresty/nginx --with-http_ssl_module --with-http_v2_module --with-openssl=/usr/local/src/openssl-1.1.1g --with-pcre=/usr/local/src/pcre-8.44 --with-pcre-jit --with-cc-opt='-O2 -fdebug-prefix-map=/data/builder/debuild/nginx-1.19.9/debian/debuild-base/nginx-1.19.9=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -Wl,--as-needed -pie' ``` 如果在命令输出中看到 `--with-luajit` 或者 `--with-lua` 字样,则表示 OpenResty 安装了 LuaJIT。其中,`--with-luajit` 表示使用 LuaJIT 编译,`--with-lua` 表示使用官方 Lua 编译。如果两个选项都没有出现,则表示 OpenResty 没有安装 LuaJIT

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值