当前位置:首页>Linux>Linux Tickless 机制解析:从周期时钟中断到动态时钟管理

Linux Tickless 机制解析:从周期时钟中断到动态时钟管理

  • 2026-06-28 04:45:58
Linux Tickless 机制解析:从周期时钟中断到动态时钟管理
看一个框架图,有疑问我们可以评论区或者加群讨论
第一章 Tick 机制的起源

1.1 什么是 Tick

早期 Linux 内核采用周期性时钟中断(Periodic Tick)驱动整个调度系统运行。CPU 上电后,本地 APIC Timer 或其他时钟源会按照固定频率产生中断,例如 HZ=1000 表示每秒触发 1000 次时钟中断,每隔 1ms CPU 必须进入一次内核处理 Tick。无论系统是否繁忙,这些 Tick 都会持续产生,因此调度器、时间统计、超时检测等大量功能都依赖 Tick 推进系统时间。

对于单核时代来说,这种设计非常简单。内核只需要保证 Tick 周期稳定即可维护 jiffies、更新时间轮、检查定时器以及触发进程调度。但随着服务器和移动设备的发展,问题逐渐暴露出来。如果 CPU 已经进入空闲状态,理论上可以长时间保持低功耗运行,但周期 Tick 仍然会不断唤醒 CPU。即使系统没有任何任务需要执行,每秒仍然可能产生数百甚至上千次无意义中断,大量浪费 CPU 时间和电能。

1.2 Tick 带来的性能问题

周期 Tick 最直接的问题是打断 CPU 的连续运行。对于 HPC、高频交易以及实时计算场景,应用程序希望尽可能长时间占用 CPU,而 Tick 会强制进入内核中断处理路径。虽然单次 Tick 开销只有几微秒,但在高频率配置下累计成本十分可观。特别是在 NUMA 多核服务器中,每个 CPU 都会独立产生 Tick,中断总数可能达到每秒数十万次。

对于移动设备而言,问题则更加明显。CPU 进入 C-State 深度休眠后,本应长时间保持低功耗状态,但周期 Tick 会频繁唤醒核心执行调度逻辑,随后再次休眠。大量无意义唤醒直接影响续航能力。因此 Linux 社区开始思考一个问题:如果未来几秒都没有任何定时器需要触发,为什么还要继续产生 Tick?Tickless 机制正是在这种背景下诞生的。

第二章 Tick 中断在内核中的作用

2.1 Tick 如何驱动系统时间

Linux 内核中的时间推进并不是依靠 CPU 自己累加计数,而是通过 Tick 中断更新系统时间。每次时钟中断到来时,内核会进入 tick_handle_periodic(),随后更新 jiffies 计数器。很多内核子系统都依赖 jiffies 作为时间基准,包括超时机制、网络重传、调度器时间片以及软定时器管理,典型调用链如下:

Local Timer Interrupt        │        ▼tick_handle_periodic()        │        ▼do_timer()        │        ▼jiffies++

当 HZ=1000 时,每秒执行 1000 次 do_timer()。应用程序调用 sleep()、poll()、select() 等接口时,本质上都是等待 Tick 推进时间直到满足超时条件。因此在早期 Linux 中,Tick 不仅仅是调度器时钟,更是整个时间管理系统的基础设施。

2.2 Tick 如何驱动调度器

除了更新时间之外,Tick 还承担调度职责。每次 Tick 到来时,调度器都会统计当前任务运行时间,并检查是否需要发生调度切换。对于 CFS 调度器而言,Tick 是更新 vruntime 和负载统计的重要来源。如果没有 Tick,调度器将失去周期性统计入口,核心调用链如下:

tick_handle_periodic()        │        ▼update_process_times()        │        ▼scheduler_tick()

scheduler_tick() 会更新当前任务运行时间、计算负载均衡信息以及检查时间片耗尽情况。因此 Tick 长期以来既承担时间管理职责,也承担调度管理职责。要实现 Tickless,就必须首先解决这两个依赖问题,否则关闭 Tick 将导致系统时间停止和调度器失效。

第三章 Tickless 的核心思想

3.1 从周期 Tick 到动态 Tick

Tickless 的核心思想非常简单:如果未来一段时间没有任何事件需要处理,那么就停止产生 Tick。当 CPU 进入空闲状态后,内核计算最近一次定时器到期时间,并将硬件时钟设置到该时间点。此后 CPU 不再接收周期 Tick,而是一直休眠到真正需要处理事件时才被唤醒,传统 Tick 模式如下:

1ms Tick1ms Tick1ms Tick1ms Tick1ms Tick

Tickless 模式则变成:

SleepSleepSleepSleep10ms后一次中断

这样大量无意义 Tick 被消除,CPU 可以长时间停留在深度休眠状态。对于服务器来说减少了中断开销,对于移动设备来说则显著降低功耗。

3.2 NO_HZ 机制

Linux Tickless 实现依赖 NO_HZ 框架。NO_HZ 主要包含三种工作模式:

CONFIG_HZ_PERIODICCONFIG_NO_HZ_IDLECONFIG_NO_HZ_FULL

其中 CONFIG_NO_HZ_IDLE 最为常见。当 CPU 空闲时停止 Tick,而 CPU 忙碌时继续保留周期 Tick。CONFIG_NO_HZ_FULL 则更加激进,它允许用户指定某些 CPU 在运行单个任务时彻底关闭 Tick,仅保留必要中断。这种模式广泛应用于实时系统、DPDK、HFT 以及 HPC 场景,可以显著降低调度器干扰。

第四章 Tickless 实现流程

4.1 CPU 进入 Idle 时发生了什么

当 CPU 没有可运行任务时,调度器会进入 Idle Task。此时内核首先检查最近一个定时器到期时间,如果发现未来较长时间没有事件需要处理,则进入 Tick 停止流程,调用链:

cpu_idle_loop()        │        ▼tick_nohz_idle_enter()        │        ▼tick_nohz_stop_sched_tick()

tick_nohz_stop_sched_tick() 是 Tickless 的核心函数。它负责计算下一次必须唤醒 CPU 的时间,并重新编程本地定时器。此后周期 Tick 被关闭,CPU 可以进入更深层次节能状态。整个过程中系统时间并不会停止,而是通过高精度时钟源持续计数。

4.2 CPU 如何重新恢复 Tick

当定时器到期、网络包到达或者设备中断发生时,CPU 会被唤醒。此时内核重新启动 Tick 机制,并恢复正常调度流程,恢复路径如下:

Interrupt      │      ▼tick_nohz_idle_exit()      │      ▼tick_nohz_restart_sched_tick()

为了保证时间连续性,内核会计算休眠期间经过的时间,并一次性更新 jiffies 和调度统计信息。对于上层应用来说,Tick 停止期间时间仍然正常流逝,因此整个过程是透明的。应用程序并不会感知 Tick 是否存在,只会看到更低的功耗和更少的调度干扰。

第五章 NO_HZ_FULL 深度解析

5.1 为什么需要 Full Tickless

虽然 NO_HZ_IDLE 已经解决空闲 CPU 的 Tick 问题,但对于高性能计算而言仍然不够。假设一个 CPU 正在运行单个计算任务,即使系统负载极低,周期 Tick 仍然会持续产生。对于需要极致确定性的场景,例如实时控制、DPDK 数据包处理、高频交易撮合引擎,这些 Tick 会带来额外延迟抖动。

因此 Linux 引入 NO_HZ_FULL。其目标是在用户任务独占 CPU 时彻底关闭周期 Tick,只保留必要系统中断。这样应用程序能够长时间连续运行而不被调度器周期性打断,从而获得更稳定延迟表现。

典型启动参数如下:

nohz_full=2-7

表示 CPU2 到 CPU7 启用 Full Tickless 模式。此后这些 CPU 上运行的单任务环境几乎不会受到 Tick 干扰。

5.2 Full Tickless 面临的问题

关闭 Tick 并不意味着调度器可以彻底消失。内核仍然需要维护负载均衡、RCU 状态、时间统计以及性能监控信息。因此 NO_HZ_FULL 实际上引入了一系列补偿机制,将原本依赖 Tick 的功能迁移到其他事件触发路径。

例如 RCU 子系统会使用 RCU Offload 技术将回调迁移到专用 CPU;调度器统计则依赖上下文切换事件更新;部分性能统计则通过 PMU 中断获取数据。这使得 NO_HZ_FULL 实现远比 NO_HZ_IDLE 复杂,但换来的收益是在高性能场景下显著降低系统噪声,提高 CPU 利用率和实时性表现。


第六章 Tickless 对系统性能的影响

6.1 Tickless 带来的收益

Tickless 最大收益体现在两个方面:降低功耗和减少调度干扰。对于服务器而言,减少周期 Tick 能够降低 CPU 中断负载,提高缓存命中率;对于笔记本和手机而言,则能够让 CPU 更长时间停留在深度 C-State,从而延长电池续航。

在现代 Linux 系统中,通过 Tickless 可以显著减少中断数量。例如传统 HZ=1000 配置下,一个空闲 CPU 每秒需要处理 1000 次 Tick;启用 NO_HZ_IDLE 后,这些 Tick 大部分都会消失。对于拥有数十甚至上百核心的大型服务器来说,中断减少量十分可观。

6.2 Tickless 的局限性

虽然 Tickless 带来了诸多好处,但并不意味着 Tick 可以完全消失。许多内核子系统仍然依赖时间推进机制,因此 Linux 实际上是将周期 Tick 转变为事件驱动 Tick,而不是彻底取消 Tick。此外,在负载频繁变化、定时器密集触发的场景下,Tickless 带来的收益会明显下降,因为 CPU 会不断被唤醒处理事件。

从实现角度看,Tickless 本质上是 Linux 从“固定频率驱动”向“事件驱动调度”演进的重要一步。它让内核不再机械地产生周期中断,而是根据实际需求动态决定何时唤醒 CPU。随着高精度定时器、NO_HZ_FULL 和实时计算需求的发展,Tickless 已经成为现代 Linux 时间管理架构中不可缺少的重要组成部分。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-03 03:48:10 HTTP/2.0 GET : https://f.mffb.com.cn/a/499043.html
  2. 运行时间 : 0.601328s [ 吞吐率:1.66req/s ] 内存消耗:4,733.02kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=be0c40f3db4a261390b9aaba83cbd7e5
  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.001235s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.002061s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.024034s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.015021s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001814s ]
  6. SELECT * FROM `set` [ RunTime:0.002997s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000990s ]
  8. SELECT * FROM `article` WHERE `id` = 499043 LIMIT 1 [ RunTime:0.016479s ]
  9. UPDATE `article` SET `lasttime` = 1783021690 WHERE `id` = 499043 [ RunTime:0.004260s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.000254s ]
  11. SELECT * FROM `article` WHERE `id` < 499043 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000463s ]
  12. SELECT * FROM `article` WHERE `id` > 499043 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.034096s ]
  13. SELECT * FROM `article` WHERE `id` < 499043 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.131261s ]
  14. SELECT * FROM `article` WHERE `id` < 499043 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.138436s ]
  15. SELECT * FROM `article` WHERE `id` < 499043 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.017406s ]
0.607002s