当前位置:首页>Linux>嵌入式Linux设备内部跨模块通信方案对比与统一消息架构设计

嵌入式Linux设备内部跨模块通信方案对比与统一消息架构设计

  • 2026-08-21 10:06:08
嵌入式Linux设备内部跨模块通信方案对比与统一消息架构设计
Hello,大家好,我是程序媛MM。

本文约4100,今天来根据《一份靠谱的Linux终端产品应用层软件架构学习计划》这篇帖子中的计划,来对齐我欠缺的一些技术点,在模块通信的方案中对本地MQTT不太熟悉,其他三个常用,本文来梳理Linux设备内部跨模块几大通信方案对比及统一消息架构设计

关注公众号, 即可获得与Linux相关的电子书籍以及常用开发工具,文末有文档清单。


IPC摄像机·智能网关 ·工控设备 · 物联网终端


一 痛点与思路

嵌入式Linux量产设备中,真正的软件架构痛点往往不在于外设驱动调试,而在于多模块、多线程、多进程之间的解耦通信

随着业务迭代,设备会逐步衍生出日志、配置、网络、报警、存储、OTA、人机交互等多个独立单元。若模块间直接函数调用、硬编码耦合,必将导致:

  • 代码臃肿,迭代困难
  • 崩溃牵连,定位艰难
  • 无法独立调试,集成效率低下

行业通用解法:搭建内部通信中间件,将全部跨模块交互收拢为统一消息通信模式,彻底解除模块依赖。

本文将深度对比嵌入式Linux四大主流内部通信方案:

  • UNIX Socket
  • 本地MQTT
  • System V消息队列
  • 共享内存

同时给出量产可用的统一消息封装协议异步回调分发器设计。


二 核心选型前提:设备内部通信的专属诉求

与设备与云端的外网通信不同,内部跨模块通信对中间件有明确且严苛的要求,这也是选型的核心标准:

诉求
说明
低延迟
本地进程/线程交互,无需网络路由,延迟需控制在ms级乃至μs级
高可靠
不丢消息、不乱序,支持阻塞/非阻塞以适配不同业务场景
强解耦
以发布订阅模式为主,模块间无需感知彼此实现细节
资源轻量
适配嵌入式小内存、低CPU资源场景
可追溯
支持消息序号、类型标记、日志溯源,便于线上问题排查

三、四大内部通信方案详解

1. UNIX Domain Socket(UDS 本地套接字)

原理

UNIX Socket是Linux原生的本地进程通信机制,不经过网络协议栈,通过本地文件节点实现进程间数据交互。支持TCP(流式)和UDP(数据报)两种模式,是嵌入式Linux应用层最主流的跨进程通信方案。

典型架构为单服务端 + 多客户端:全局消息服务端监听本地socket文件,各业务模块作为客户端连接,实现统一消息收发。

优点

  • 稳定性极高:Linux内核原生支持,无第三方依赖,无额外崩溃风险
  • 有序可靠:流式UDS保证消息有序、不重复、不丢失
  • 天然支持多进程:进程崩溃不影响整体通信框架
  • 事件驱动友好:完美支持epoll多路复用
  • 权限可控:可通过文件权限限制访问,避免非法模块接入

缺点

  • 相较共享内存存在数据拷贝开销,大批量数据传输性能一般
  • 无原生订阅机制,需业务层手动实现消息分发与订阅匹配
  • 多客户端场景需自行维护连接状态、断线重连与异常清理

适用场景

嵌入式Linux绝大多数量产产品的首选,覆盖设备状态上报、业务指令下发、模块事件通知、中小规模数据交互等全部常规通信场景,是通用中间件最稳健的底层载体。


2. 本地MQTT(mosquitto本地Broker)

原理

将标准MQTT Broker部署于设备本地,所有业务模块作为MQTT客户端,通过主题订阅/发布实现跨模块通信,完全复用MQTT的发布订阅模型、QoS机制与主题通配符能力。

优点

  • 解耦性天花板:天然发布订阅架构,模块零依赖,新增业务无需修改存量代码
  • 自带丰富消息机制:原生支持QoS 0/1/2、Retained消息、遗嘱消息,无需业务层额外封装
  • 内外协议统一:设备内部与云端可统一使用MQTT,架构一致性极强
  • 调试便捷:可直接通过MQTT客户端监听所有模块消息,日志追溯直观简单

缺点

  • 资源开销最大:需常驻mosquitto进程,占用内存与CPU,低端设备不友好
  • 延迟偏高:协议封装与消息转发存在额外开销,实时性不如UDS和共享内存
  • 依赖第三方组件:需移植、适配、维护mosquitto,增加编译与运维成本
  • 协议冗余:简单通信场景下字段冗余,浪费带宽与资源

适用场景

中高端物联网设备、网关设备、多业务插件化设备。适合模块众多、业务复杂、需内外协议统一的场景,不适合低配置、高实时性、极简设备


3. System V消息队列(MSG Queue)

原理

Linux内核原生IPC机制,由内核维护独立的消息缓冲区,进程通过消息类型读写队列数据,支持消息优先级类型过滤,是传统嵌入式多进程通信方案。

优点

  • 内核级持久化:进程退出后队列消息不丢失,重启后可继续读取
  • 类型过滤:可按消息类型精准接收,无需业务层遍历匹配
  • 阻塞/非阻塞可选,适配同步与异步两种处理模式
  • 无连接管理开销:无需维护socket连接状态,开发简单

缺点

  • 接口老旧,扩展性差:API设计陈旧,不支持事件通知,无法与epoll结合使用
  • 资源不灵活:队列大小与消息长度需系统预配置,运行时无法动态调整
  • 易堆积卡死:消费速度不足时消息持续堆积,占用内核内存,可能导致系统异常
  • 无标准协议:各模块自定义格式,维护成本高

适用场景

老旧嵌入式设备兼容、简单低频次消息传输。新项目不推荐作为主力方案,架构灵活性远低于UDS。


4. 共享内存(SHM)

原理

多个进程映射同一块物理内存,直接读写,零拷贝,是Linux进程通信中速率最高的方案。通常需搭配信号量或互斥锁做读写同步,避免数据竞争。

优点

  • 极致高性能:μs级延迟,支持超大批量数据传输
  • CPU开销极低:无协议封装、无数据转发,仅内存读写操作

缺点

  • 无原生同步机制:必须额外配合同步原语,开发复杂度高
  • 可靠性差:无消息有序、丢包重传等保障,读写冲突易导致数据错乱
  • 不适合通用消息通信:仅适合大数据缓存,不适合碎片化、高频次的业务指令交互
  • 调试困难:内存数据动态变化,问题追溯难度大

适用场景

超大流量数据传输场景,如:

  • IPC音视频码流传输
  • 图片帧缓存
  • 批量日志落地
  • 大数据量参数同步

绝不适合普通业务指令交互。


四 四大方案全方位对比汇总(量产选型参考)

通信方案
延迟
资源开销
可靠性
解耦性
开发成本
量产推荐度
核心适用场景
UNIX Socket
低(ms级)
极高
良好
中等
⭐⭐⭐⭐⭐
通用业务指令、模块事件通知(全场景主力)
本地MQTT
极高
极强
⭐⭐⭐⭐
复杂多业务、内外协议统一、插件化设备
System V消息队列
中低
一般
中等
⭐⭐
老旧项目兼容、简单低频消息
共享内存
极低(μs级)
极低
⭐⭐⭐
音视频、图片、大数据量缓存传输

五 量产统一消息封装协议(通用标准)

多方案混用场景下,最大的痛点在于消息格式不统一,导致无法通用分发、无法追溯定位。因此,无论底层采用何种通信方案,业务层必须统一消息封装格式。

以下为嵌入式产品量产通用的消息结构体设计,兼容上述四种通信方案

5.1 统一消息头设计(固定16字节,对齐规整)

采用消息头 + 消息体分层结构,头部固定长度,便于解析分包与粘包处理,适配所有场景。

// 统一内部消息头(所有模块通信通用)
typedefstruct {
uint32_t msg_magic;     // 魔数:校验合法性,防止脏数据
uint16_t msg_type;      // 消息类型:事件/指令/上报/应答
uint16_t msg_seq;       // 全局序列号:消息溯源、超时配对
uint32_t msg_len;       // 消息体有效长度
uint8_t  msg_from;      // 发送模块ID
uint8_t  msg_to;        // 目标模块ID
uint8_t  msg_qos;       // 可靠性等级:0-无需应答  1-需要应答
uint8_t  reserve;       // 预留字节,对齐扩展
msg_header_t;

// 完整消息帧
typedefstruct {
msg_header_t header;    // 固定消息头
uint8_t body[0];        // 柔性数组,承载自定义消息体
msg_frame_t;

5.2 核心字段作用解析

字段
作用
魔数
过滤传输中的脏数据与内存错乱,提升通信稳定性
消息类型
统一枚举定义,区分设备状态、控制指令、数据上报、异常报警、心跳等,供分发器精准路由
全局序列号
全局自增,实现请求-应答配对、超时检测、全链路日志追溯,解决异步通信无上下文问题
模块收发ID
标记消息来源与目标,支持单播、广播、组播路由
QoS等级
区分可靠消息(参数配置、控制指令)与非可靠消息(状态上报、心跳),兼顾性能与可靠性

六 异步回调消息分发器架构(中间件核心)

有了统一消息格式后,还需要上层异步回调分发器来实现消息的解耦路由,彻底摒弃 switch-case 硬编码判断,做到模块即插即用。这是商用级通信中间件的核心能力。

6.1 设计思想

采用注册回调 + 事件路由 + 异步队列模型:

  • 各模块初始化时将自身的消息处理函数注册到全局分发器
  • 分发器收到底层通信消息后,根据消息类型与目标模块自动匹配对应回调
  • 异步执行处理逻辑,不阻塞主线程

6.2 核心架构流程

flowchart LR
    A[消息接收层] --> B[消息校验层]
    B --> C[路由匹配层]
    C --> D[异步调度层]
    D --> E[回调执行层]

    A1[UDS / MQTT / 消息队列 / SHM] --> A
    B1[校验魔数、长度合法性] --> B
    C1[按消息类型与目标模块ID匹配] --> C
    D1[投递到独立任务队列] --> D
    E1[执行业务处理函数] --> E
  1. 消息接收层:从UDS/MQTT/消息队列/SHM接收原始数据,解析为统一的 msg_frame_t
  2. 消息校验层:校验魔数与长度合法性,过滤异常脏数据
  3. 路由匹配层:根据消息类型与目标模块ID,匹配已注册的回调函数
  4. 异步调度层:将消息投递到独立任务队列,由工作线程异步处理
  5. 回调执行层:执行对应模块的业务处理函数,完成消息响应

6.3 极简落地代码框架

// 消息回调函数原型
typedefint(*msg_callback)(msg_frame_t *frame);

// 消息注册表
typedefstruct {
uint16_t msg_type;
    msg_callback cb;
msg_route_t;

// 全局消息分发器注册接口
voidmsg_dispatch_register(uint16_t type, msg_callback cb);

// 核心消息分发函数(异步线程调用)
intmsg_dispatch_process(msg_frame_t *frame)
{
for (int i = 0; i < MAX_ROUTE_NUM; i++) {
if (route_table[i].msg_type == frame->header.msg_type 
            && route_table[i].cb != NULL) {
return route_table[i].cb(frame);
        }
    }
return-1;   // 无匹配处理函数
}

6.4 架构核心优势

  • 完全解耦:新增业务模块无需修改分发器核心代码,仅需注册回调,符合开闭原则
  • 统一异步模型:所有模块消息均异步处理,杜绝主线程阻塞,提升设备稳定性
  • 多底层兼容:分发器与底层通信方案无关,可随时切换UDS/MQTT/SHM,上层业务无感知
  • 可监控可扩展:统一入口可实现消息统计、超时检测、异常上报、日志打印

七 量产最终推荐架构方案

结合嵌入式Linux产品的资源、稳定性与扩展性需求,给出商用落地最优组合建议:

场景
推荐方案
理由
通用业务通信
UNIX Socket
稳定性强、资源开销低,适配90%模块交互场景
大数据量传输
共享内存 + 同步锁
音视频、图片帧等超大流量,保证高性能
复杂高端设备
本地MQTT
内外协议统一、插件化架构友好
上层统一封装
统一消息头 + 异步回调分发器
业务层完全统一,底层可透明切换

八 总结

设备内部跨模块通信的核心,不在于选用某一款“最极致”的底层通信方案,而在于分层解耦、统一规范

  • UNIX Socket、本地MQTT、消息队列、共享内存各有优劣,没有万能方案,需按业务场景灵活选型
  • 统一消息封装 + 异步回调分发器是所有高端量产嵌入式软件架构的标配能力

这套设计能够彻底解决模块耦合、代码臃肿、难以维护、无法追溯的量产痛点,是嵌入式Linux应用架构进阶的核心能力。

本文适用于智能网关、IPC摄像头、工控设备、物联网终端等嵌入式Linux量产项目架构选型参考

往期文章(欢迎订阅技术分享栏目全部文章):

【从零开始撸内核驱动源码】:以ttyserial(串口驱动)为例,串联字符设备驱动基础知识点的学习计划
Linux内核源码顶层 Makefile分析并单独编译调试内核自带的驱动
【从零开始撸内核驱动源码】:ttynull驱动
Linux内核驱动安装失败问题调试及解决方法
Linux内核驱动源码走读之编译内核及外部驱动实操指南
谢谢你看到这里

嵌入式Linux设备内部跨模块通信方案对比与统一消息架构设计

嵌入式Linux设备内部跨模块通信方案对比与统一消息架构设计

分享读书心得、工作经验,自我成长和生活方式。

希望我的文字能对你有所帮助

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-08-21 18:02:38 HTTP/2.0 GET : https://f.mffb.com.cn/a/506638.html
  2. 运行时间 : 0.728350s [ 吞吐率:1.37req/s ] 内存消耗:4,380.40kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=fd696456977f9a664bbca7df7a064046
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.001095s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.002180s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.001135s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.088098s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001766s ]
  6. SELECT * FROM `set` [ RunTime:0.000589s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001422s ]
  8. SELECT * FROM `article` WHERE `id` = 506638 LIMIT 1 [ RunTime:0.004933s ]
  9. UPDATE `article` SET `lasttime` = 1787306559 WHERE `id` = 506638 [ RunTime:0.015562s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.101295s ]
  11. SELECT * FROM `article` WHERE `id` < 506638 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.058593s ]
  12. SELECT * FROM `article` WHERE `id` > 506638 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.049783s ]
  13. SELECT * FROM `article` WHERE `id` < 506638 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.007391s ]
  14. SELECT * FROM `article` WHERE `id` < 506638 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.091182s ]
  15. SELECT * FROM `article` WHERE `id` < 506638 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.128752s ]
0.732025s