当前位置:首页>Linux>Linux 页缓存迎来“神经预读器”?解析 NSD Patch 的突破与争议

Linux 页缓存迎来“神经预读器”?解析 NSD Patch 的突破与争议

  • 2026-08-18 23:12:08
Linux 页缓存迎来“神经预读器”?解析 NSD Patch 的突破与争议
在 Linux 内存管理(MM)与文件系统领域,Page Cache 预读(Readahead)一直以来都是决定 I/O 吞吐和应用响应延迟的核心机制之一。现有的内核预读算法主要依赖固定窗口策略(Fixed-window Approach),对于纯顺序读(Sequential Access)效果极佳,但面临复杂的交错模式、步长读取(Stride Access)或数据库访问模式时,传统的硬编码逻辑往往会显得力不从心。

近期,开发者 Ayhan Aydin 向 linux-mm 邮件列表提交了一套 RFC Patch 补丁集([RFC PATCH 0/3] Neural Storage Driver - learning page cache prefetcher),试图引入一个名为 NSD (Neural Storage Driver) 的“自学习式”页缓存预读引擎。

NSD 的核心思想在于:不再仅靠线性窗口判断是否预读,而是让预读器具备“记忆”与“模式识别”能力。

根据补丁说明,NSD 在 4KB 区域粒度上记录文件访问模式。其内部构建了一个基于 “突触马尔可夫链(Synaptic Markov Chain)”的预测模型:

  • 转移状态记录: 实时追踪文件内部不同页面区域之间的跳转与转移概率(Transitions between file regions)。

  • 任意步长检测: 能够自动捕获并识别任意长度的跨步访问模式(Sequential strides of arbitrary length)。

  • 主动预读触发: 当模型以高置信度预测出下一个将被访问的页面时,直接调用内核标准的page_cache_sync_readahead() 接口异步拉入页面。

高命中率表现: 在 SATA SSD 环境的测试中,NSD 对预测出的预读页面达到了 98% 的真实命中率(Real hit rate),大幅降低了无用预读带来的 I/O 放大与缓存污染。

实测性能:SQLite 查询提升 18.8%

作者在 x86_64 架构、SATA SSD 设备及 Linux 7.0.0 内核基础上,针对多种经典工作负载进行了 Benchmark

测试:

代码架构与 Patch 结构分析

本次 RFC 提交的代码体量非常精干,整个框架约 480 行代码,主要分为 3 个 Patch:

  • Patch 1/3: mm/filemap: Add NSD prefetch hook point (+5 lines)

  • Patch 2/3: nsd: Core prediction engine (fs/nsd/, ~480 lines)

  • Patch 3/3: Documentation: Add NSD documentation and MAINTAINERS entry

在机制实现上,NSD 目前采用了相对独立的模块化设计:在 mm/filemap.c 的核心入口 filemap_read()中嵌入了一个非常轻量级的钩子函数(Hook Point)。当应用程序发起读操作时,Hook 会抓取当前偏移量并送入 fs/nsd/ 中的预测引擎。

预测机制

结合 Ayhan Aydin 提交的 Patch 说明及代码实现框架,NSD的预测算法并非基于庞大昂贵的深度神经网络(如 Transformer 或 CNN),而是基于一种为内核热路径(Hot-path)优化的轻量级动态自适应模型——“突触马尔可夫链”(Synaptic Markov Chain)

下面从数据结构、学习过程、步长与模式检测、预读决策触发机制等维度对该预测算法进行深入分析:

核心模型:突触马尔可夫链 (Synaptic Markov Chain)

马尔可夫链的核心假设是“未来的状态概率仅依赖于当前(或过去若干个)状态”。在文件 I/O 的场景中,状态S对应文件中的页面或区域(Region)。

(1) 4KB 区域粒度建模

  • NSD 在 4KB 粒度(即标准 Linux Page Size)上将文件划分为连续的逻辑块/区域。

  • 传统的 Readahead 仅记录当前的线性游标(Cursor),而 NSD 会将访问记录为一个状态序列:

(2) 突触权重与转移概率(Synaptic Weights & Transition Probabilities)

  • 模型在内存中维持一个状态转移矩阵或邻接图(Transition Graph)。

  • 节点代表文件区域,边(Edge)代表从区域 A 跳转到区域 B 的访问转移。

  • “突触”特性(Synaptic Adaptation): 边上的权重(Weight)模仿生物神经元突触的“赫布学习规则(Hebbing Learning)”——强化频发路径,惩罚/衰减衰退路径

    • 正向强化(LTP - Long-term Potentiation): 当观察到再次出现 A -> B$的跳转时,节点A 到 B 的边权重增加。

    • 权重衰减(Weight Decay): 未被触发的转移路径,其权重会随时间和总访问次数按衰减因子衰减,从而使算法具备“遗忘”旧模式、适应新模式的能力。

    • 转移概率计算: 区域 A 跳转到区域 B的概率 

      P(B|A) 即为 A->B的突触权重占 A所有出边权重总和的比例。

任意步长与复杂模式检测 (Arbitrary-Length Stride Detection)

对于纯连续读(如 0->1->2->3),传统内核预读器依靠检测连续性指针即可完成。但当出现复杂的非连续/步长访问(Stride Access)时(例如数据库跳跃读取索引表 0->16->32->48,或者交错读取),传统算法就会失效。

NSD 的算法在此展现出优势:

  1. 多阶历史追踪(Multi-step History Window):

    NSD 维护了一个短序列缓冲区(滑动历史),不只观察

    ,还会结合

    联合预测。

  2. 跨步模式的自动涌现:

    如果应用程序以固定 Delta(如+N 页面)访问文件,经过数次访问后,

    路径的突触权重会迅速占优。马尔可夫链的概率图会自动收敛出一条高权重的“跨步轨迹”,无需硬编码设定固定 Stride 规则,算法即可自发学习出任意长度的 Delta 步长

预读决策与触发条件 (Inference & Triggering)

在 filemap_read() 中发起每次 Read 提示时,预测引擎会按如下流程做出决策:

  • 高置信度阈值判定:

    只有当计算得出的

    超过设定阈值(例如 80% 或最高权重边优势明显)时,NSD 才会认为预测生效。这就是为什么在 Random 4K 纯随机读取测试中,NSD 能做到仅 +1.1% 的噪音级变动——因为随机读无法建立高置信度的突触路径,预测引擎会自动休眠,避免了无用的 I/O 放大。

  • 高命中率保证 (98% Real Hit Rate):

    通过在真正发起预读请求前进行严苛的概率阈值筛选,保证了被预读进来的页面极大概率会在短期内被用户态进程读取。

内核环境下的空间与时间复杂度优化

在内核空间中运行算法,最大的挑战是 不能造成 CPU 延迟飙升 和 不能无节制消耗内存。NSD 采用了以下设计策略:

  1. 时间复杂度:O(1) 的推理与更新

    • 采用基于哈希表(Hash Table)或快速数组索引的数据结构存储节点与邻接关系。

    • 状态更新和概率查找只涉及加减计算与简单的位移操作,不包含浮点运算(Kernels don't use FPU easily)或复杂的矩阵乘法,因此能将 Read 延迟控制在 130 µs 且无性能回归

  2. 空间复杂度:有界内存与老化淘汰(LRU / Decay Eviction)

    • 马尔可夫图的节点数量受限。针对长期未更新、权重低于临界值的边或节点,引擎内部包含了类似于 LRU 的动态垃圾回收(GC)与淘汰机制,防止内存无限膨胀。

总结和展望

NSD 预测算法的核心精髓在于:用生物学中的“突触可塑性”来改造经典的马尔可夫链

  • 面对顺序读:它能快速形成一笔带过的连续转移概率;

  • 面对数据库索引/跨步读(SQLite FTS):它能迅速“记住”索引节点与数据节点之间的固定跳转图谱,从而把 SQLite 查询时间缩短了 18.8%

  • 面对随机读:它因概率分散而自动止损,避免预读污染。

这种无须深度神经网络硬件(NPU/GPU)参与、完全依靠高效数据结构在 CPU 极短指令周期内完成的“轻量级在线自学习”,代表了 Linux 内核智能化的一个重要演进方向。

随着端侧 AI 和复杂数据库应用在 Linux 系统上的普及,传统的静态 I/O 算法正在迎来智能化的改造浪潮。

NSD 补丁集展示了利用轻量级机器学习模型(非深度学习,而是高效的马尔可夫链)优化内核子系统的巨大潜力。

无论 NSD 最终是以独立模块形式呈现,还是重构为现有 ra_state 的机器学习扩展,它都为 Linux Page Cache 的演进开辟了一条充满想象力的道路。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-08-21 13:38:43 HTTP/2.0 GET : https://f.mffb.com.cn/a/510508.html
  2. 运行时间 : 0.160888s [ 吞吐率:6.22req/s ] 内存消耗:4,823.09kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=0a9d0f58a6dcbcafc416c98d83c28860
  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.000977s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001761s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000761s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000976s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001401s ]
  6. SELECT * FROM `set` [ RunTime:0.000640s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001430s ]
  8. SELECT * FROM `article` WHERE `id` = 510508 LIMIT 1 [ RunTime:0.018851s ]
  9. UPDATE `article` SET `lasttime` = 1787290723 WHERE `id` = 510508 [ RunTime:0.007802s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.001043s ]
  11. SELECT * FROM `article` WHERE `id` < 510508 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.040135s ]
  12. SELECT * FROM `article` WHERE `id` > 510508 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001121s ]
  13. SELECT * FROM `article` WHERE `id` < 510508 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001014s ]
  14. SELECT * FROM `article` WHERE `id` < 510508 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.000881s ]
  15. SELECT * FROM `article` WHERE `id` < 510508 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.003031s ]
0.162369s