当前位置:首页>Linux>Linux I/O 完成机制解析:从阻塞唤醒到异步完成队列

Linux I/O 完成机制解析:从阻塞唤醒到异步完成队列

  • 2026-06-28 04:49:08
Linux I/O 完成机制解析:从阻塞唤醒到异步完成队列
看一个框架图,有疑问我们可以评论区或者加群讨论
第一章 Linux I/O 完成模型概述

1.1 什么是 I/O 完成机制

Linux 中所谓“I/O 完成”,本质上是内核通知用户空间:“你提交的数据操作已经结束,可以继续处理后续逻辑”。这里的“结束”既可能是数据已经到达内核缓冲区,也可能是 DMA 已经完成,甚至可能是硬件真正完成了物理传输。

很多开发者会误以为 read/write 调用返回就意味着硬件操作完成,但实际上 Linux 中大量 I/O 都存在缓存、队列与异步执行。例如 write(socket) 返回时,数据可能仍停留在 TCP send buffer;write(serial) 返回时,UART FIFO 甚至还没开始发送。因此 Linux I/O 模型核心并不是“执行函数”,而是“什么时候认为 I/O 已完成”。

1.2 Linux 为什么需要异步完成机制

最早 Linux 大量采用同步阻塞模型:

read    ↓睡眠    ↓数据到达    ↓唤醒

这种模型实现简单,但线程会长时间阻塞。随着网络服务器、NVMe SSD、高速 DMA、工业实时系统出现,CPU 开始面临两个问题:大量线程切换,以及高并发 I/O 导致的睡眠唤醒开销,因此 Linux 后续逐渐引入:

poll/epollaioio_uringcompletionworkqueue

这些机制的核心目标都只有一个:让 CPU 不再等待 I/O,而是“提交任务后继续执行,完成时再通知”。

第二章 阻塞 I/O 与等待队列机制

2.1 阻塞 read 的底层原理

Linux 阻塞 I/O 的核心是 wait queue。以字符设备 read 为例:

wait_event_interruptible(dev->wq,data_ready);

如果 data_ready 不成立,当前进程会进入 TASK_INTERRUPTIBLE 状态,然后从运行队列移除。此时 CPU 可以调度其他线程运行,当硬件数据到达后,驱动 IRQ 会调用:

wake_up_interruptible(&dev->wq);

等待线程重新进入 runnable 状态。整个机制本质上属于“条件等待模型”,CPU 不再主动轮询,而是由事件驱动唤醒。

2.2 Linux 睡眠与唤醒链路

Linux I/O 阻塞链路:

用户 read    ↓驱动发现无数据    ↓加入 waitqueue    ↓schedule()    ↓线程睡眠
硬件中断到达后:
IRQ Handler    ↓写入 ringbuffer    ↓wake_up_interruptible    ↓调度器重新唤醒线程

因此 Linux 阻塞 I/O 真正关键的不是 read,而是 wait queue 与 scheduler 的配合。Linux 内核大量异步机制最终都会回到“等待队列 + 唤醒”这个基础模型。

第三章 completion 完成量机制

3.1 completion 的设计目的

Linux completion 是一种轻量级同步完成机制,专门用于:等待某件事情完成,例如:

等待 DMA 完成等待 firmware 加载等待线程退出等待硬件初始化

相比 semaphore,completion 更强调“一次性完成通知”,而不是资源计数。其本质上属于 Linux 内核中的“事件同步器”,核心结构:

struct completion {    unsigned int done;    wait_queue_head_t wait;};
done 表示完成状态,wait 表示等待队列。

3.2 completion 使用流程

典型使用方法:

DECLARE_COMPLETION(done);wait_for_completion(&done);

另一个线程或 IRQ:complete(&done);

wait_for_completion 内部本质上仍然会进入 wait queue 睡眠,而 complete 会唤醒等待线程。因此 completion 其实是 wait queue 的封装,优势在于语义更明确, DMA 驱动中:

提交 DMA    ↓睡眠等待    ↓DMA IRQ    ↓complete()

相比直接操作 wait queue,completion 更适合表达“任务完成”这一语义。

第四章 Linux 异步 I/O(AIO)机制

4.1 传统同步 I/O 的问题

同步 I/O 最大问题是线程阻塞。例如:read(fd, buf, size);,调用后线程必须等待数据返回。对于磁盘或网络 I/O,这意味着大量线程会处于 sleep 状态,高并发服务器如果采用:一个连接一个线程会迅速产生上下文切换风暴。因为 Linux 调度器需要维护海量 task_struct,而真正运行的线程可能只有少数几个,所以Linux 引入 AIO:

提交 I/O立即返回完成后异步通知

线程无需等待真正的数据完成。

4.2 Linux AIO 的内部实现

Linux 原生 AIO 主要面向 block device:

io_submit()io_getevents()

用户提交 IOCB:

用户态    ↓内核 aio context    ↓block layer    ↓DMA/磁盘

I/O 完成后,block layer 将 event 放入 completion queue,用户通过 io_getevents 获取结果,但 Linux 传统 AIO 存在明显缺陷:

仅支持部分文件系统实现复杂依赖线程模拟socket 支持弱

因此长期以来 Linux 网络服务器仍然主要依赖 epoll,而不是 AIO。

第五章 io_uring 现代 I/O 完成架构

5.1 io_uring 为什么出现

Linux io_uring 本质上是对传统 AIO 的重构。它试图统一:

网络 I/O磁盘 I/O异步提交异步完成零拷贝

最大目标是减少:

系统调用线程切换数据拷贝锁竞争

传统 epoll + read/write 模型中,用户与内核需要频繁切换:

epoll_waitreadwrite

而 io_uring 希望通过共享 ringbuffer 完成“批量提交 + 批量完成”。(关于io_uring 见我的另外一篇文字)

5.2 SQ/CQ 双环结构

io_uring 最核心设计:SQ (Submission Queue) CQ (Completion Queue),用户态向 SQ 提交请求:

READWRITESENDRECVFSYNC

内核处理完成后向 CQ 写入结果。整个过程通过 mmap 共享 ringbuffer,大量减少 syscall 开销,完整流程:

用户提交 SQE    ↓内核消费 SQ    ↓执行 I/O    ↓生成 CQE    ↓用户读取完成事件

其本质已经接近用户态驱动模型,Linux 正在逐渐从“同步系统调用架构”转向“共享队列架构”。

第六章 DMA 与硬件 I/O 完成机制

6.1 DMA 完成通知原理

DMA 是 Linux I/O 完成机制中最典型场景。CPU 提交 DMA 后:

配置 DMA Controller    ↓DMA 自主搬运数据    ↓CPU 继续执行

DMA 完成后触发 IRQ:

DMA IRQ    ↓complete()或 wake_up()

等待线程随后恢复运行,因此 DMA 是:

CPU 不再参与数据搬运只处理开始与结束

这正是 Linux 异步 I/O 思想的核心。

6.2 Linux DMAEngine 完成回调

Linux DMAEngine 通常采用 callback 模式:desc->callback = dma_done;DMA IRQ 到达后:

IRQ Handler    ↓tasklet/workqueue    ↓执行 callback

callback 中通常会:complete();wake_up();通知上层 subsystem 数据已经可用。

例如 UART DMA:

UART RX DMA    ↓DMA buffer 满    ↓IRQ    ↓唤醒 TTY 层

网络驱动、音频驱动、摄像头驱动大量依赖这一机制。

第七章 Linux I/O 完成机制工程实践

7.1 工业系统中的 I/O 完成模型

工业 Linux 系统最典型的架构:

IRQ ↓ringbuffer ↓waitqueue ↓epoll ↓业务线程

主要有:

CAN 总线UARTTCPGPIO

都通过异步完成机制统一进入事件循环。CPU 永远不会主动等待硬件,而是让硬件完成后主动通知软件,这也是 Linux 能够同时处理:网络 存储 串口 图形 音频等的大规模并发事件的根本原因。

7.2 现代 Linux I/O 架构趋势

Linux I/O 正在逐渐从:阻塞模型转向:

事件驱动异步完成共享队列

传统 read/write 更强调“函数调用”,而现代 io_uring 更强调“任务提交与完成回调”,未来 Linux I/O 架构重点会继续围绕:

减少 syscall减少 wakeup减少 copy减少 context switch

展开。因为现代 CPU 的真正瓶颈已经不再是计算能力,而是内核同步与缓存一致性开销。Linux I/O 完成机制的发展就是不断降低“等待成本”的过程。

建了一个嵌入式Linux技术群,专门聊难题分析和求职面试,欢迎大家一起加入,共同解决工作中的疑难杂症问题

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-03 02:19:55 HTTP/2.0 GET : https://f.mffb.com.cn/a/497071.html
  2. 运行时间 : 0.126426s [ 吞吐率:7.91req/s ] 内存消耗:5,340.63kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=72dfd4da06e4f13870f73fea5cc5d8d9
  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.000656s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000704s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.008961s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.002678s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000657s ]
  6. SELECT * FROM `set` [ RunTime:0.002922s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000610s ]
  8. SELECT * FROM `article` WHERE `id` = 497071 LIMIT 1 [ RunTime:0.000473s ]
  9. UPDATE `article` SET `lasttime` = 1783016395 WHERE `id` = 497071 [ RunTime:0.014553s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.000406s ]
  11. SELECT * FROM `article` WHERE `id` < 497071 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000587s ]
  12. SELECT * FROM `article` WHERE `id` > 497071 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.004571s ]
  13. SELECT * FROM `article` WHERE `id` < 497071 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.005085s ]
  14. SELECT * FROM `article` WHERE `id` < 497071 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.000761s ]
  15. SELECT * FROM `article` WHERE `id` < 497071 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.014171s ]
0.128080s