当前位置:首页>Linux>Linux 系统调用深度解析:read() 这一行代码,CPU 到底做了什么?

Linux 系统调用深度解析:read() 这一行代码,CPU 到底做了什么?

  • 2026-03-28 09:09:38
Linux 系统调用深度解析:read() 这一行代码,CPU 到底做了什么?

作者:小康,C/C++编程博主

关键词:系统调用、syscall、用户态、内核态、陷入内核、vDSO、特权级


前言

你每天都在写这样的代码:

int fd = open("config.json", O_RDONLY);read(fd, buf, size);write(1, buf, size);

三行代码,三个函数调用。但这三次调用和普通函数调用有一个根本区别——它们会让 CPU 从"用户态"切换到"内核态",经历一次代价不小的特权级切换,再切回来。

这个过程叫系统调用(System Call)

理解它,你才能真正理解:为什么高性能程序要减少系统调用次数、vDSO 为什么能加速、io_uring 为什么比 epoll 快。

一、用户态 vs 内核态:CPU 的两个"特权等级"

现代 CPU(x86)有 4 个特权等级(Ring 0 ~ Ring 3)。Linux 只用了两个:

  • Ring 0(内核态):可以执行任何指令,访问所有硬件,操作物理内存
  • Ring 3(用户态):受限模式,不能直接操作硬件,不能访问内核内存

你写的 C/C++ 程序运行在 Ring 3。内核运行在 Ring 0。

这个隔离是系统稳定性的基础——用户程序崩溃,不会把整个内核拖下水。

但用户程序要读文件、发网络包、创建进程,这些都需要操作硬件,必须让内核帮忙。怎么让内核帮忙?通过系统调用——一种受控的、从 Ring 3 进入 Ring 0 的机制。

这道红线是系统中最重要的边界之一。用户态代码无法直接跨越它——必须通过 syscall 指令,以受控的方式请求内核帮忙。

二、系统调用的完整路径:CPU 做了什么?

当你调用 read(fd, buf, size) 时,实际发生了以下步骤:

整个过程的关键细节:

寄存器约定(x86-64):

  • rax:系统调用号(read = 0,write = 1,open = 2,close = 3…)
  • rdirsirdxr10r8r9:前六个参数
  • rax 返回值:系统调用的返回值(负数表示错误码)

syscall 指令到底做了什么:

  1. 保存当前 rip(指令指针)和 rflags 到 CPU 特定寄存器(MSR
  2. 将 cs(代码段)切换为内核代码段,特权级变为 Ring 0
  3. 跳转到 MSR_LSTAR 寄存器里存的地址(即 entry_SYSCALL_64

这一切发生在 CPU 硬件层面,比软件中断(老的 int 0x80)快得多。

三、系统调用号:内核的"菜单"

内核里有一张大表——sys_call_table[],存放所有系统调用对应的处理函数地址。rax 就是这张表的下标。

# 查看 Linux 系统调用表$ cat /usr/include/x86_64-linux-gnu/asm/unistd_64.h | head -20#define __NR_read     0   ← read() 对应 0 号#define __NR_write    1   ← write() 对应 1 号#define __NR_open     2#define __NR_close    3#define __NR_stat     4...# x86-64 Linux 共有约 400+ 个系统调用# 用 strace 实时观察程序发出的系统调用$ strace ./a.outexecve("./a.out", ...)      = 0openat(AT_FDCWD, "config.json", O_RDONLY) = 3read(3, "hello", 5)         = 5write(1, "hello", 5)        = 5close(3)                    = 0

strace 本质上是利用 ptrace 系统调用拦截目标进程的每一次系统调用,打印调用名称、参数和返回值。是调试的利器。

四、系统调用的真实开销

每次系统调用并不是"免费"的。它会带来:

  • 特权级切换:CPU 寄存器保存/恢复,上下文切换的一部分
  • 内核栈切换:从用户栈切换到内核栈
  • TLB 刷新(部分场景):内核和用户地址空间隔离带来的代价(Meltdown 漏洞补丁后开销更大)
  • 缓存污染:进入内核后 L1/L2 缓存的用户数据可能被替换

一次系统调用的开销大约在 100ns ~ 1μs 之间,对高性能场景来说不可忽视。

这正是高性能程序设计的一个核心原则:减少系统调用次数

// 差:每次写一个字节,N次系统调用for (int i = 0; i < 1000; i++)    write(fd, &buf[i], 1);  // 1000 次 write()// 好:批量写,1次系统调用write(fd, buf, 1000);       // 1 次 write()

stdio 的 fwrite 在用户态做了缓冲,就是为了减少真正的 write() 系统调用次数。

五、vDSO:不进内核的"系统调用"

有些系统调用非常频繁,但实际上不需要操作硬件——比如 gettimeofday(),只是读一下系统时钟。如果每次都走完整的系统调用路径,太浪费了。

Linux 引入了 vDSO(Virtual Dynamic Shared Object) 来解决这个问题。

vDSO 是内核在每个进程的地址空间里映射的一小块内存,里面包含几个特殊的"内核函数"的用户态实现:

$ cat /proc/self/maps | grep vdso7ffd8a7fd000-7ffd8a7ff000 r-xp 00000000 00:00 0  [vdso]

vDSO 的工作方式:

  • 内核在一块共享内存(vvar)里定期更新时钟值
  • vDSO 里的 gettimeofday 实现直接从这块内存读取,不需要 syscall 指令
  • 对用户程序完全透明,调用方式不变,但快了 20 倍以上

受 vDSO 加速的主要函数:gettimeofday()clock_gettime()time()getcpu()

六、系统调用 vs 函数调用:差了多少?

普通函数调用:~1ns(几个 CPU 周期)vDSO 函数调用:~10ns(读共享内存)系统调用:~100~300ns(特权级切换 + 内核处理)有 Page Table 隔离(PTI,Meltdown 漏洞补丁)的系统调用:~500ns+

实际验证:

#include<time.h>#include<stdio.h>intmain(){structtimespect;// 高频调用 clock_gettime,测量系统调用开销for (int i = 0; i < 10000000; i++)        clock_gettime(CLOCK_MONOTONIC, &t);// 因为 vDSO,这里其实没有真正的系统调用}
$ strace -c ./a.out% time     seconds  usecs/call     calls    errors syscall------ ----------- ----------- --------- --------- --------  0.00    0.000000           0         1           read  ...# clock_gettime 不在这里!因为走了 vDSO,strace 看不到

七、从系统调用理解高性能设计

理解系统调用开销,才能理解高性能框架的设计选择:

为什么 stdio 的 fwrite 比 write 快(批量写)?fwrite 在用户态缓冲数据,积累到 4096 字节才真正调用 write(),把 N 次系统调用压缩成 1 次。

为什么io_uring 比 epoll 快?**epoll 每个事件需要独立的 read()/write() 系统调用;io_uring 用共享内存环形队列批量提交 I/O 请求,大幅减少系统调用次数,甚至可以做到 0 系统调用。

为什么 Redis 单线程还这么快? Redis 核心操作都是内存操作,不需要系统调用。网络 I/O 用 epoll,一次 epoll_wait 处理大量事件,系统调用次数极少。

八、高频面试题精析

Q:用户态和内核态的根本区别是什么?

CPU 特权等级不同。用户态(Ring 3)不能直接访问硬件和内核内存;内核态(Ring 0)可以执行所有指令、访问所有硬件。两者通过系统调用(syscall 指令)安全切换,是操作系统稳定性的基础保障。

Q:系统调用和函数调用有什么区别?

普通函数调用:跳转到同一特权级的另一个地址,保存/恢复几个寄存器,1ns 级别。系统调用:必须通过 syscall 指令切换特权级,保存大量寄存器状态,切换栈,进入内核处理,再切换回来,100ns+ 级别。本质区别是有没有特权级切换

Q:int 0x80 和 syscall 指令有什么区别?

int 0x80 是老方式(x86 32位),用软件中断实现系统调用,需要查中断描述符表(IDT),开销更大。syscall 是 x86-64 专用的快速系统调用指令,CPU 直接从 MSR 寄存器读取内核入口地址,省去了 IDT 查找,快约 50%。现代 Linux 64 位程序都用 syscall

Q:为什么 gettimeofday 这么快?

因为 glibc 会自动使用 vDSO 实现,完全不走 syscall 指令,在用户态直接读内核映射的共享时钟变量,耗时约 10ns vs 普通系统调用的 200ns+。

结语

系统调用是操作系统与用户程序之间唯一的受控边界。

理解了它,你就理解了:为什么 CPU 有特权等级、为什么减少系统调用是性能优化的第一原则、为什么 vDSO 能让时间函数飞速运行、为什么 io_uring 是下一代 I/O 的方向。

它是贯穿整个 Linux 系统编程系列的隐形主角——每一篇文章里出现的 read()write()mmap()epoll_wait(),都是一次跨越特权边界的旅程。


觉得有收获,点赞、推荐、转发 支持下哦~ 🙏

📌 还在打基础?从这里出发

如果你读完这篇还觉得 C、C++、Linux 有些陌生,别急:

感兴趣可以了解一下。

🚀 基础扎实了?来做工业级项目

如果你已经有一定基础,想冲击更高的天花板,这些工业级 C++ 项目正是为你准备的:

项目
亮点
线程池
并发基础设施,从原理到实现
高性能日志库 MiniSpdlog
对标 spdlog,异步无锁
高性能内存池
彻底告别 malloc 瓶颈
多线程下载工具
分片 + 并发实战
MySQL 连接池
数据库高并发必备
内存泄漏检测器
Hook malloc/free 原理
ReactorX
高性能事件驱动框架(就是本文的 epoll 升级版)
无锁栈
 / 无锁队列(SPSC/MPMC)
无锁编程精髓
工业级智能指针(shared_ptr)
手写工业级智能指针
高性能网络库 NetCore
从 epoll 到完整框架
高性能异步日志库 ZephyrLog
异步 + 无锁
死锁检测工具
图算法实战
高性能 HTTP 服务器
性能吊打大多数开源项目
协程库 CoroForge
对标微信 libco
高性能 HTTP 压测工具
支持 TCP、HTTP、Unix Domain Socket
Redis 核心模块实战
从 0 到 1 实现 Redis 全部核心模块

每个项目都是真实可用的工程代码,不是教学玩具。

详情点击 C++ 项目合集课程链接为什么同样是"学过C++",有人面试碾压,有人开口就怂?差距在这18个C++硬核项目

  • 对C++项目实战课程感兴趣的朋友,可以扫下方二维码添加小康微信(或微信搜索:jkfwdkf )
  • 备注「 项目实战 」

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-03-28 14:31:57 HTTP/2.0 GET : https://f.mffb.com.cn/a/483513.html
  2. 运行时间 : 0.084748s [ 吞吐率:11.80req/s ] 内存消耗:4,710.77kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=585953f1bf76b94dfb041720dcddecd5
  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.000338s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000590s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000309s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000278s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000478s ]
  6. SELECT * FROM `set` [ RunTime:0.000193s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000572s ]
  8. SELECT * FROM `article` WHERE `id` = 483513 LIMIT 1 [ RunTime:0.000486s ]
  9. UPDATE `article` SET `lasttime` = 1774679517 WHERE `id` = 483513 [ RunTime:0.004289s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.000221s ]
  11. SELECT * FROM `article` WHERE `id` < 483513 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000426s ]
  12. SELECT * FROM `article` WHERE `id` > 483513 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.003099s ]
  13. SELECT * FROM `article` WHERE `id` < 483513 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000836s ]
  14. SELECT * FROM `article` WHERE `id` < 483513 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.001134s ]
  15. SELECT * FROM `article` WHERE `id` < 483513 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.005775s ]
0.086275s