什么是LuaJIT 标准 Lua 出于性能考虑,也内置了虚拟机,所以 Lua 代码并不是直接被解释执行的,而是先由 Lua 编译器编译为字节码(Byte Code),然后再由 Lua 虚拟机执行。 LuaJIT 的解释器会在执行字节码的同时,记录一些运行时的统计信息,比如每个 Lua 函数调用入口的 ...
分类:
其他好文 时间:
2020-04-28 09:50:03
阅读次数:
68
前言 咱们用LUA开发 Air202或者ESP8266的时候是不是都希望可以直接升级lua文件 就是说直接把编写好的lua文件放到云端,然后芯片下载lua文件以后执行 其实这个功能还是我大前年的时候花时间研究出来的,又是第一人. 嘻嘻嘻 因为后来发现用来升级Air202是没有啥问题,但是用来升级ES ...
分类:
Web程序 时间:
2020-04-27 09:13:52
阅读次数:
68
简评:本文系译文,原作者 Julie Zhuo 是 Facebook 的 Product design VP。有时候我们提问(例如,为什么留存率下降了?)是以产品为中心的,如果换个角度,以用户为中心来提问(为什么用户不用这个产品了?),思考的角度就截然不同。 设计一个有价值的产品的第一准则,是这个产 ...
分类:
编程语言 时间:
2020-04-23 18:57:32
阅读次数:
75
Redis Lua 这个技术,我之前就在关注,今天有空,我把项目中基于Redis实现的ID生成器改成用lua脚本实现,防止并发id冲突问题 Redis中使用Lua的好处 减少网络开销。可以将多个请求通过脚本的形式一次发送,减少网络时延 原子操作。redis会将整个脚本作为一个整体执行,中间不会被其他 ...
分类:
其他好文 时间:
2020-04-23 00:18:56
阅读次数:
76
在 Lua 中, table 是唯一的数据结构。共享内存字典shared dict, 是在 OpenResty 编程中最为重要的数据结构。它不仅支持数据的存放和读取,还支持原子计数和队列操作。 基于 shared dict,可以实现多个 worker 之间的缓存和通信,以及限流限速、流量统计等功能。 ...
分类:
其他好文 时间:
2020-04-21 23:50:04
阅读次数:
107
原理 回顾一下OpenResty的架构图 OpenResty 的 master 和 worker 进程中,都包含一个 LuaJIT VM。在同一个进程内的所有协程,都会共享这个 VM,并在这个 VM 中运行 Lua 代码。 在同一个时间点上,每个 worker 进程只能处理一个用户的请求,也就是只有 ...
分类:
其他好文 时间:
2020-04-20 23:59:35
阅读次数:
109
Lua 模块与包 模块类似于一个封装库,从 Lua 5.1 开始,Lua 加入了标准的模块管理机制,可以把一些公用的代码放在一个文件里,以 API 接口的形式在其他地方调用,有利于代码的重用和降低代码耦合度。 Lua 的模块是由变量、函数等已知元素组成的 table,因此创建一个模块很简单,就是创建 ...
分类:
其他好文 时间:
2020-04-19 10:34:18
阅读次数:
64
Apache SkyWalking 什么是 SkyWalking SkyWalking 是观察性分析平台和应用性能管理系统。 提供分布式追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案. 支持Java, .Net Core, PHP, NodeJS, Golang, LUA语言探针 支持Env ...
分类:
Web程序 时间:
2020-04-19 01:04:10
阅读次数:
111
自我总结一句话:警惕copy导致的数据冗余,和元表设置导致的深度索引lua里面实现class机制,比较关键的地方就是class的继承机制,以及class实例化的过程。 class继承机制的关键是怎么让子类拥有父类的方法集:<br>1.完全使用setmetatable()的方式实现,每继承一次,都把父 ...
分类:
其他好文 时间:
2020-04-18 10:14:15
阅读次数:
60
OpenResty 是一个兼具开发效率和性能的服务端开发平台,虽然它基于 NGINX 实现,但其适用范围早已远远超出反向代理和负载均衡。它的核心是基于 NGINX 的一个 C 模块(lua-nginx-module),该模块将 LuaJIT 嵌入到 NGINX 服务器中,并对外提供一套完整的 Lua ...
分类:
其他好文 时间:
2020-04-17 00:43:55
阅读次数:
86