源码技术
php
java
python
Linux
当前位置:
首页
>
Linux
>强如 Linux 内核,里面也塞满了“屎山”
强如 Linux 内核,里面也塞满了“屎山”
2026-08-19 03:01:08
强如 Linux 内核,里面也塞满了“屎山”
很多人对 Linux 内核的印象停留在教科书式的优雅架构上,认为这里的每一行代码都是深思熟虑的杰作。但作为内核相关模块的维护者,我想用我每天都在面对的真实世界,来戳破这种完美的滤镜。
实话说,哪怕是在 Linux 内核的核心子系统里,也塞满了由于历史妥协而遗留下的代码包袱。只要稍微不注意,这些代码就会演变成谁也不想触碰的雷区。上周在内核邮件列表(LKML)里发生的一场讨论,恰好完整地展现了 HugeTLB 的屎山困境。
请停止对 HugeTLB 新增任何特性
在 2026 年 7 月的内存管理子系统(MM)邮件列表中,有开发者提交了一组补丁:
[RFC PATCH 0/6] mm/hugetlb: Dynamic, NUMA-aware HugePage Cache & Free Page Reporting
https://lore.kernel.org/linux-mm/20260707064235.1386552-1-souravpanda@google.com/
这组补丁的初衷很明确:为了解决云环境在大页内存(HugeTLB,特别是 1GB 巨大的 gigantic page)分配时的延迟问题,作者设计了一个动态的、具备 NUMA 感知的缓存机制,并结合了virtio-balloon的 Free Page Reporting 功能。
从业务和厂商的需求来看,这个优化完全是合理的。但负责核心 MM 的维护者 David Hildenbrand 很快给出了原则性的拒绝:
"In general, we consider hugetlb nowadays to be mostly in feature freeze..."(大意:目前我们普遍认为 HugeTLB 模块已经处于功能冻结状态,因为我们意识到,在整个 MM 子系统之上为这个本就特殊的模块添加更多的特殊逻辑,长期来看只会带来更严重的维护伤害。)
我是非常认同这个观点的,因为只有修改过这部分代码的人才知道,这个模块的内部现状到底有多让人头疼。
为什么说它是一个“平行宇宙”?
这组补丁的改动行数非常直观:
mm/hugetlb.c | 590 ++++++++++++++++++-
另一位 MM 核心维护者 Lorenzo Stoakes 在邮件里直言不讳地指出了问题所在。这接近 600 行的新增代码,本质上是在把hugetlb变得更加特殊。
为什么我们如此排斥这种“特殊化(Special casing)”?
hugetlb(大页内存fs)在内核里的历史太久了。由于早期的设计局限,它并没有很好地复用核心内存管理(Core MM)的基础设施,而是在内部实现了一套相对独立的逻辑。这意味着很多通用的内存操作,一旦遇到大页内存,就必须引入类似if (hugetlb) { ... }的判断。它就像是内核里的一个“国中国”,自己有一套平行的代码实现。
Lorenzo 在邮件中说了句很重但很真实的话:“Hugetlb 已经成为 MM 领域不良决策的典型代表。由于过去我们总是抱着‘就再加这一个功能’的心态,导致现在的维护成本极高。”
作为维护者,每天看着这坨复杂的历史代码,坦白讲我完全不想往里面再多看一眼,更不用说再去叠加新的特殊逻辑了。如果不加克制,任何一个小优化的加入,都会让未来的重构和维护变成彻底的灾难。
维护者的防守:重构是新功能的“入场券”
在讨论的后半段,负责虚拟化维护的 Michael S. Tsirkin 提出了一个很务实的问题:如果维护者觉得代码太特殊需要重构,那是不是应该给提交者提供一个高层面的重构设计方案?否则这么高的要求,提交者可能无从下手。
Lorenzo 的回应非常直接,也代表了开源顶级项目维护者的共同共识:
“重构的负担在于提交者,而不是维护者。维护者的拒绝并不意味着必须同时提供一个替代方案。”
这种态度听起来可能有些冷酷,但这是庞大软件工程里唯一的防守策略。
任何大型软件系统在缺乏克制的情况下都会走向无序。一个特殊功能的引入可能只需要几百行,但它带来的长尾维护成本、隐藏的 Corner case,最终都会由模块维护者和整个社区买单。当技术债累积到一定程度时,“功能冻结”是倒逼架构回归健康的唯一手段。
你想加入新特性?可以,代价是你必须先帮社区清理历史烂账,把原有的平行代码普通化(Ordinary),而不是继续在历史包袱上盖高楼。Lorenzo 提到他自己当时也在进行匿名反向映射(anon rmap)模块的重构,同样没有人给他写好指南。这才是真实的内核日常——大量的精力实际上是在做艰苦的去特化和重构,对抗系统演进中的熵增。
结语
软件工程往往是一门妥协的艺术。强如 Linux 内核,其内部也布满了前人为了快速解决问题而留下的“捷径”。但在项目走向成熟和庞大时,这些曾经的捷径往往会变成死代码和维护者的噩梦。
作为模块维护者,守住代码库的底线比盲目增加功能要重要得多。这也给所有的软件架构师和开发者带来了一个朴素的启示:多写几句判断、多搞一条特殊通道总是容易的;但如果不在架构层面保持克制,系统最终会被自己堆砌的功能所吞噬。保持项目的生命力,往往不在于我们“多做了什么”,而在于我们“克制了什么”。
最后,关于 HugeTLB后续的发展,其实社区的方向是非常明确的——那就是“去特殊化”与“去独立化”。我们的目标是逐步剥离它现有的平行宇宙,让它能够真正复用核心 MM 的基础设施,成为一个普通的内核公民。
正因如此,虽然我们拒绝了做加法的优化,但内核社区非常欢迎任何人对该模块进行重构。如果你能提出方案减少 HugeTLB的现有代码行数,或者能把它内部的特殊实现合理地合并回核心内存管理中,这是整个内核 MM 社区最希望看到并会全力支持的贡献。
本文来自网友投稿或网络内容,如有侵犯您的权益请联系我们删除,联系邮箱:wyl860211@qq.com 。
Linux系统基础8:进程管理命令
300 条 Linux 命令汇总,新手入门直接收藏
最新文章
Linux系统基础8:进程管理命令
量子计算也卷开源了!印度公司甩出Python SDK,pip install直连8/25量子比特真机
每天学一个Linux命令系列(20):tar - 打包解压一篇就够了(tar.gz/zip全搞定)
GUI 界面越来越精美,但我依然坚持 Linux 终端应用的 5 个核心理由
Windows和Linux快速生成大容量文件的完整指南
一图胜千言!10个 Python 可视化案例实操
练完这100道编程题,你的Python技术猛猛上涨
所有有电脑的女生听劝:死磕Python!恶心是真的,但每月多2w也是真的
一篇学会Python基础重点:列表
Python你就学吧,一学一个不吱声[呲牙]
热门文章
《Python 从入门到精通》111|网络请求入门:先搞懂客户端和服务器
计算机二级Python考试里文件操作和数据可视化哪个模块更值得花时间?
Python跑了一夜没出结果?换个写法快了100倍
Python 字符串写入txt文件 四种常用方法
python三大程序结构
python 基础数据处理与内置函数
蓝桥杯青少组STEMA测评Python编程题解目录(2023年前历届)
Linux 软链接和 Win 快捷方式有什么区别?
【python3.9.5setup】python3.9.5setup软件安装包下载python 软件含激活步骤完整安装流程
信息素养大赛_智传民韵_初中Python_模拟题_1
随机文章
10个月宝宝每天需要喝多少奶粉?
【第41期】21天养成编程习惯:Python刷题第12天
【CIE】2021年06月Python二级 -- 编程题37
学Python收藏了100G资料,为什么还是写不出像样的代码?
Python教程- 项目实战:从零搭建数据分析 Dashboard
线上凌晨3点告警,我用这6个Linux命令10分钟找到了元凶
高效Linux命令组合,解决日常90%运维要求!
学运维必知必会:Linux常用命令,建议收藏
Linux 最新资讯 20260711——Pop!_OS 为 COSMIC 推出“Frosted Glass”桌面风格
Linux 运维 17 个实战技巧速查
LinuxUSB驱动实验:鼠标、键盘、U盘及OTG功能测试全流程
基本
文件
流程
错误
SQL
调试
请求信息 : 2026-08-21 14:39:29 HTTP/2.0 GET : https://f.mffb.com.cn/a/504815.html
运行时间 : 0.957987s [ 吞吐率:1.04req/s ] 内存消耗:4,735.80kb 文件加载:140
缓存信息 : 0 reads,0 writes
会话信息 : SESSION_ID=61fcfaa2cfa69290009f440b6115ae19
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
CONNECT:[ UseTime:0.001122s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001371s ]
SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.033121s ]
SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.010486s ]
SHOW FULL COLUMNS FROM `set` [ RunTime:0.001445s ]
SELECT * FROM `set` [ RunTime:0.012987s ]
SHOW FULL COLUMNS FROM `article` [ RunTime:0.001926s ]
SELECT * FROM `article` WHERE `id` = 504815 LIMIT 1 [ RunTime:0.026423s ]
UPDATE `article` SET `lasttime` = 1787294369 WHERE `id` = 504815 [ RunTime:0.019485s ]
SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.009220s ]
SELECT * FROM `article` WHERE `id` < 504815 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.018593s ]
SELECT * FROM `article` WHERE `id` > 504815 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.002193s ]
SELECT * FROM `article` WHERE `id` < 504815 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.193798s ]
SELECT * FROM `article` WHERE `id` < 504815 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.314846s ]
SELECT * FROM `article` WHERE `id` < 504815 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.147368s ]
0.961629s