Openresty原理概念篇(十)为什么 lua-resty-core 性能更高一些

news2024/12/24 2:31:10

一  为什么 lua-resty-core 性能更高一些

①   回顾

lua-resty-core和lua-nginx-module'各自都有哪些API'? --> 看下面'两个仓库'的文档

lua-nginx-module     lua-resty-core

下面:一起看下'Lua C API'和'FFI' 的实现有何'不同'之处,这样可以对它们的'性能'有个直观认识

案例: 以 'ngx.base64_decode' 这个 API 为例

ngx.base64_decode

②  Lua CFunction

1) 这里注册了一个 'CFunction':ngx_http_lua_ngx_decode_base64

2) 而它与 ngx.base64_decode 这个'对外暴露的 API' 是对应关系

3) 'C 文件'中搜索 ngx_http_lua_ngx_decode_base64,它定义在文件的'开始'位置:

③  LuaJIT FFI

 实现的代码 

官方的 C 代码风格指南   LuaJIT 官方的教程    FFI API

④  LuaJIT FFI GC

说明: 在阅读'别人[读懂]'代码和自己'写高性能lua模块'很有帮助

⑤  检测内存泄露工具

后续从'操作系统'、'C语言'的角度来理解'内存泄露 memoey leak'

⑥  lua-resty-core

细节点: 从1.15.8.1版本开始,默认开了 'lua-resty-core',不需要显示'require'

重点: 观察'https://github.com/openresty/lua-resty-core' 仓库有哪些'API'

⑦  小结

遗留:lua-nginx-module 和 lua-resty-core 中都存在的 API 的'性能测试'的差异

重点:ffi和cfunction的性能差异是主要是'有LuaJIT的实时编译优化'带来的

⑧  答疑解惑

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/693568.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

14. python从入门到精通——GUI编程

目录 常用的GUI框架 wxPython:比较常用 PyQt6:比较常用 Kivy Flexx Tkinter 安装PyQt5 要开发PyQt5程序需要安装三个模块: 安装命令: 安装 安装命令: window安装: PyCharm软件安装&#xff1a…

Android跳转具体应用权限管理,三种方式

背景:Android越来越安全合规,在应用里,需要给用户所有可选择和取消的明确方式。 比如:设置了权限,也要给用户关闭权限的入口。被要求在应用的设置里,提供权限管理入口。 解决方式有三: 方式一…

ansible实训-Day2(ansible基本问题及部署安装)

一、前言 该篇是对ansible实训第二天内容的归纳总结,主要包括ansible的一些基本问题以及ansible的部署安装。 二、理论部分 Q1:什么是ansible Ansible是一种自动化IT工具,它可以帮助管理和自动化IT基础架构。使用Ansible,管理员…

神仙级编程神器,吹爆!

Visual Studio 编程领域公认的“最强IDE”,Visual Studio是目前最流行的Windows平台应用程序的集成开发环境,提供了高级开发工具、调试功能、数据库功能和创新功能,帮助在各种平台上快速创建当前最先进的应用程序,开发新的程序。 …

界面控件DevExpress ASP.NET中文 - 如何自定义编辑表单运行时布局?

在DevExpress ASP.NET控件v19.2版本中就针对ASP. NET WebForms和MVC平台的ASP. NET GridView和CardView控件添加了一个主要增强功能。 DevExpress ASP.NET v23.1正式版下载(Q技术交流:523159565) 当您使用预定义的或 自定义的编辑表单时,经…

网易兑换礼包码分析

🍋前言 由于C站版权太多,所有的爬虫相关均为记录,不做深入! 接到了一个项目大概是电商老板想弄一个自动化工具,方便自己处理买家买的兑换码,一个一个的兑换有点累人,代码写到一半才发现由于自己的原因分析错了,刚刚开始我以为他的验证码是在html上的,就像这样 <…

SpringBoot02:运行原理初探

目录 一、运行原理探究 1、pom.xml文件 1.1、父依赖 1.2、启动器Spring-boot-starter 2、主启动类 2.1、默认的主启动类&#xff1a; 2.2、分析主启动类注解&#xff1a;SpringBootApplication 1、Target(ElementType.TYPE) 2、Retention(RetentionPolicy.RUNTIME) 3…

【C语言初阶(3)】循环语句:for 循环

文章目录 1. 语法结构2. for 语句的执行流程3. for 循环中的 break 和 continue3.1 for 循环中的 break3.2 for 循环中的 continue 4. for 循环语句的循环控制变量5. for 循环的变种5.1 for( ; ; )5.2. for 循环的嵌套5.3 使用多个变量控制循环 6. for 循环笔试题 1. 语法结构 …

【读书笔记】《数据结构C语言版》

目录 第一章 线性表 第二章 栈和队列 第三章 字符串 第四章 广义表 第五章 树 第六章 图 第七章 查找 第八章 内排序 第一章 线性表 一个线性表是n个数据元素的优先序列线性表可分为顺序存储结构&#xff08;数组&#xff09;和链式存储结构&#xff08;链表&#xff…

安科瑞WHD智能型温湿度控制器

安科瑞WHD智能型温湿度控制器 安科瑞 崔丽洁

前端Vue自定义发送短信验证码弹框popup 实现剩余秒数计数 重发短信验证码

前端Vue自定义发送短信验证码弹框popup 实现剩余秒数计数 重发短信验证码&#xff0c; 请访问uni-app插件市场地址&#xff1a;https://ext.dcloud.net.cn/plugin?id13207 效果图如下&#xff1a; 实现代码如下: # cc-codeDialog #### 使用方法 使用方法 <!-- show:是…

【uniapp】uniapp反向代理解决跨域问题

背景介绍 前段时间&#xff0c;在拿uniapp开发的时候&#xff0c;出现了跨域问题&#xff0c;按理说跨域应该由后端解决&#xff0c;但既然咱前端可以上&#xff0c;我想就上了&#xff08;顺手装个13&#xff09; 什么是跨域 出于浏览器的同源策略&#xff0c;在请求时&…

React 简单实现 v-if和v-show的元素控制效果

react中并没有直接的想模板引擎那样的命令可以直接控制元素展示 但是 我们了解了 v-if和v-show之后 还是大有文章的 我们在 项目的 src下创建 components 文件夹 创建dom.jsx 编写代码如下 import React from "react" export default class dom extends React.Comp…

Ubuntu查看显卡信息

查看显卡信息&#xff0c;终端输入 lspci | grep VGA 输出结果 0000:65:00.0 VGA compatible controller: NVIDIA Corporation Device 24b0 (rev a1) 发现是十六进制码&#xff0c;进入网址PCI Devices查询&#xff0c;输入 24b0 并点击 Jump&#xff0c;得到结果 显卡型号…

Inline Assembly 内联汇编总结

The language used for inline assembly in Solidity is called Yul. 在solidity中&#xff0c;用于写内联汇编的语言是Yul. Inline assembly is a way to access the Ethereum Virtual Machine at a low level. This bypasses several important safety features and checks …

中国信通院联合腾讯安全发布《数据安全治理与实践白皮书》

6月26日&#xff0c;由中国通信标准化协会和中国信息通信研究院联合主办的“2023大数据产业发展大会”在北京启幕&#xff0c;大会发布了多项中国信息通信研究院及相关机构在数智化领域最新研究和实践成果。 腾讯云安全总经理李滨出席了数据安全高质量发展论坛&#xff0c;分享…

【探测器】opencv显示探测器的raw图像

【探测器】opencv显示探测器的raw图像 1、背景2、代码3、下载 1、背景 对于探测器&#xff08;相对于可见光成像的相机&#xff0c;这里的探测器指的是对X光成像的相机&#xff09;。 RAW文件几乎是未经过处理而直接从CCD或CMOS上得到的信息。 RAW格式是无损格式&#xff0c;相…

剑指 Offer ! ! 34. 二叉树中和为某一值的路径

剑指 Offer 34. 二叉树中和为某一值的路径 给你二叉树的根节点 root 和一个整数目标和 targetSum &#xff0c;找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。 叶子节点 是指没有子节点的节点。 输入&#xff1a;root [5,4,8,11,null,13,4,7,2,null,null,5,1],…

京微齐力:基于H7的曼彻斯特(编码解码串口)系统

目录 前言一、关于曼彻斯特编码二、任务&实验效果三、硬件选择1、H7P20N0L176-M2H12、XC7A35TFGG484-2 四、程序设计1、顶层模块2、编码&发送模块3、解码&接收模块4、HC595驱动模块5、段选&位选模块 五、debugware 回环实验六、兼容设计七、工程获取 前言 四月…