当前位置:首页>APP源码>读懂软件Bug:真正的系统缺陷,从来不止代码出错

读懂软件Bug:真正的系统缺陷,从来不止代码出错

  • 2026-06-26 10:19:52
读懂软件Bug:真正的系统缺陷,从来不止代码出错
当下,软件系统早已渗透各行各业,成为支撑现代社会运转的数字神经系统。小到手机APP、日常办公软件,大到金融交易、政务民生、工业控制系统,一切数字化运转,都依托软件而生。

而伴随软件诞生的,永远有一个无法规避的产物——软件缺陷(Bug)。

千禧年前后,个人电脑在国内逐步普及,“熊猫烧香”等病毒利用软件漏洞大肆传播,让大众第一次直观感受到软件缺陷的破坏力。时至今日,无数线上故障、系统崩盘、用户投诉、业务事故,根源几乎都源于大大小小的Bug。

软件工程领域有一句经典论断:没有绝对无缺陷的软件,只有尚未被发现缺陷的软件。

如何让软件持续、稳定、健康地运行,如何科学认知、管控、预防缺陷,是每一位研发、测试、项目管理者的核心必修课。

本文将搭建一套从认知、溯源、发现、修复到管理、扩散、预防的全链路框架,带你系统化拆解软件缺陷,跳出“Bug只是代码写错”的浅层认知,建立专业、完整的缺陷管理思维。

一、 一场经典庭审:重新定义什么是真正的软件Bug

很多技术从业者长期存在一个狭隘认知:只有代码编写错误,才算是软件缺陷。但一场英国司法庭审,彻底推翻了这个误区,给出了行业最权威的Bug定义。

2010年,英国萨里郡邮政分局局长西米·米斯拉,被法院判处15个月监禁,罪名是盗窃7.4万英镑公款。这桩判决在当时看似普通,后续却掀开了英国史上最大的司法误判之一。

这起案件的定罪逻辑,至今看来依旧匪夷所思:全程无任何实质物证。无监控录像、无指纹痕迹、无赃物、无大额消费记录、无银行流水异常,当事人始终否认盗窃,所有客观证据都无法指向她犯罪。

而唯一的定罪依据,是英国邮政局官方使用的 Horizon 系统 显示的账目差额。

这套由富士通研发的政务系统,自1996年上线后就漏洞频发,频繁出现莫名的“幽灵交易”、账目错乱、数据偏差等问题。大量邮政分局负责人,都因系统缺陷产生的账目误差被起诉、解雇、破产,人生彻底被摧毁。

后续555名受害从业者集体起诉英国邮政局,庭审中双方展开了核心辩论:

  • 企业方辩解:Bug仅指纯粹的编码错误,系统问题属于正常运行误差,并非缺陷;

  • 原告方律师主张:凡是导致软件无法满足用户、业务、场景预期的问题,都是软件缺陷

最终法官宣判原告胜诉,确立了影响全球软件行业的核心准则:

软件缺陷绝不能被窄化为代码错误,它是覆盖需求、设计、流程、管理的系统性问题,任何导致业务异常、用户受损、系统失控的问题,都属于Bug范畴。

这也印证了软件工程核心观点:局限的定义,只会带来逃避责任的借口;全面的认知,才是质量管控的开端。

二、缺陷的底层真相:看不见,不代表不存在

行业内一直流传一种极具误导性的观点:只要用户感知不到、不影响正常使用,就算代码有小问题,也不算真正的Bug。

这种认知看似省时省力,实则为软件长期稳定运行埋下了巨大隐患。我们必须认清两个核心事实:

1. 当前无故障,不代表未来无缺陷;

2. 用户未感知,不代表系统无漏洞。

很多潜藏的逻辑漏洞、边界缺陷、架构隐患,会在系统稳定运行、常规场景下彻底隐身,一旦遇到高并发、特殊场景、环境迭代、版本更新,就会集中爆发,引发重大事故。

同时,受限于人力、成本、时间,人类永远无法穷尽所有测试场景。任何软件上线后,都会有部分缺陷逃逸至用户侧,潜伏在系统中。

这也是软件需要持续迭代、长期维护的根本原因:承认缺陷的必然性,才是管控风险的第一步。

对于测试、研发人员而言,顶级的专业能力,不止是测出已知Bug,更在于评估自身测试证据的质量,正视未知风险,诚实承认不确定性。敢于说出“当前场景未覆盖、存在未知风险”,不是能力不足,而是极致的专业清醒。

三、缺陷溯源:软件全生命周期的六大缺陷源头

《软件质量工程》中有一句经典结论:软件80%的缺陷,诞生于前期设计与流程阶段,仅有20%源于后期编码与测试

缺陷从来不是凭空产生的,软件研发的每一个环节,都有引入缺陷的可能。找准缺陷源头,不是为了追责,而是为了定位问题、总结共性、从根源规避风险。软件缺陷主要分为六大类:

1. 需求缺陷:一切问题的源头

需求是软件研发的顶层指导文件,需求的模糊、遗漏、冲突、自相矛盾,是所有质量隐患的根源。

这类缺陷本应通过需求、开发、测试三方评审提前拦截,但很多团队评审流于形式,导致研发、测试人员对需求的理解出现偏差。大量需求缺陷,直到测试阶段甚至用户上线后才暴露,引发业务异常。

需求的一念模糊,代码的千行翻车。

2. 设计缺陷:最隐蔽的技术债务

架构不合理、接口不兼容、方案适配性差,是设计缺陷的核心表现。这类缺陷存在两个极端:一部分会在编译、联调阶段直接报错,快速暴露;另一部分则极具隐蔽性,不会即时报错,只会默默转化为长期技术债务

受限于项目初期的认知、工期、成本,很多设计方案无法做到极致完善,最优解往往会在系统运维、迭代升级甚至项目结束后才浮现,此时整改成本已然翻倍。

显性的设计错误即时修复,隐性的设计缺陷终身付息。

3. 逻辑缺陷:最直观的人为疏漏

代码Bug、参数错误、时序混乱、边界场景未覆盖,都属于逻辑缺陷。这类缺陷无任何争议,核心源于研发人员的编码经验不足、开发习惯不严谨、自测不到位。

相较于其他缺陷,逻辑缺陷问题清晰、定位简单,是研发过程中最基础、最应该规避的问题。

多数代码Bug,从来不是技术难题,而是细节疏忽。

4. 测试逃逸:用户侧缺陷的直接诱因

漏测、用例不足、场景覆盖不全、测试方法运用不当,统称为测试逃逸。需要明确的是:测试不会制造缺陷,但所有逃逸到用户侧的缺陷,都由测试兜底负责。

测试的核心价值,是在成本可控范围内,最大化覆盖业务场景、拦截各类缺陷。测试逃逸的本质,是防线失守,让本可提前拦截的问题流向用户。

测试的底线,就是软件上线的最后一道防线。

5. 流程缺陷:团队协作的隐形黑洞

评审缺失、规范空白、职责不清、流程流于形式,是流程缺陷的核心表现。这类缺陷不会直接产生Bug,却会放大所有环节的问题,成为缺陷滋生的温床。

无规范、无评审、无明确职责的研发流程,会导致团队协作混乱、问题无法追溯、争议不断,各类隐性风险持续累积,最终集中爆发。且流程问题的整改,需要重构团队协作体系,成本极高。

代码的问题看得见,流程的问题最致命。

6. 管理缺陷:技术债务的根本推手

盲目赶工期、压缩开发测试验证周期、放任技术债务堆积,是管理缺陷的核心体现。多数软件质量问题,归根结底都是管理问题。

为满足交付节点牺牲质量、跳过核心验证环节、用临时方案替代标准设计,看似提升了短期效率,实则将风险无限后置。技术债务持续堆积,会逐步导致系统稳定性崩塌、迭代难度激增。

所有偷过的懒、赶过的工期,最终都会变成系统事故买单。

四、缺陷发现:成本左移,越早越便宜

软件工程有一条公认的缺陷成本曲线,也是所有质量管控的核心依据:缺陷发现的时间越晚,修复成本呈指数级增长。

  • 开发阶段发现
    影响范围小、整改链路短、成本极低;
  • 测试阶段发现
    需返工、复测,产生中等时间与人力成本;
  • 上线/用户侧发现
    需复盘报告、紧急迭代、舆情管控,甚至引发业务事故、法务风险,成本极高。

想要降低质量风险,核心践行测试左移思想:将质量管控、风险拦截前置到研发最早期。在需求阶段就完成评审、可行性分析、合理性校验,从源头规避无效、不合理、不可实现的需求。

同时,发现缺陷后必须层层倒推溯源:整车测试发现的问题→为何架构测试未拦截?架构测试遗漏的问题→为何单元测试未发现?本该拦截却逃逸的缺陷,根源是需求缺失、用例不全还是人员疏忽?

每一次缺陷逃逸,都是一次防线加固的机会。

五、缺陷修复:不止改代码,更要除根因

很多团队存在一个误区:修复Bug=改对代码即可。真正专业的缺陷修复,是一套完整的分析、整改、验证闭环。

清晰准确的缺陷描述,是所有问题分析的基石。信息缺失、描述模糊,会直接导致根因定位偏差,整改治标不治本。

缺陷分析三步走

  1. 软件考古:从故障现象倒推代码逻辑、版本迭代、提交记录,还原问题发生全过程;这个概念可以参考我之前的文章《软件考古:汽车智能化浪潮中的数字考古学》。

  2. 5Why根因分析:连续多层追问,穿透表面问题,定位本质根源,杜绝浅层救火;这个概念也可以参考我之前的文章《从“表层救火”到“根源根治”,5Why分析法破解职场治标困局》。

  3. 双点位复盘:明确缺陷在哪一环节被引入、在哪一环节本该拦截却发生逃逸。

缺陷修复双轨制

  • 临时措施(止血):快速止损、规避故障、给出应急方案,保障业务正常运转;

  • 永久措施(治本):修复代码漏洞、优化设计方案、补全需求规范,彻底根除问题。

修复完成后,必须完成全量回归验证,明确测试范围、覆盖工况、关闭标准,确保缺陷不复现、无衍生问题。

核心禁忌:坚决杜绝拆东墙补西墙,修复只针对问题本身,不夹带任何无关改动。

六、缺陷管理:闭环管控,沉淀团队资产

无论缺陷出现在开发、测试还是售后阶段,都必须纳入缺陷管理系统,形成标准化问题单闭环。缺陷不是负担,是团队最珍贵的经验资产

标准问题单必须包含六大核心要素:问题精准描述、直接原因+根本原因、影响范围、临时/长期整改措施、完整验证结果、版本关联信息。

高效缺陷管理的关键实践:

  1. 缺陷必关联测试用例,补齐场景覆盖,避免同类问题复发;

  2. 全链路闭环关联:问题单-任务单-代码提交-评审记录,全程可追溯;

  3. 最小改动原则:修复聚焦问题本身,严控衍生风险。

没有闭环的缺陷修复,都是无效返工。

七、缺陷扩散:平台化开发的“遗传风险”

在当下平台化、模块化的研发模式中,存在一个极易被忽视的风险:平台缺陷的遗传效应

底层平台是所有产品线的基础支撑,一旦平台存在缺陷,会通过继承关系自动扩散至所有关联产品线,从单一模块问题,演变为批量项目事故。尤其平台团队与业务团队分离的架构下,缺陷扩散隐蔽性更强、危害更大。

针对性管控要点:

  1. 搭建统一平台缺陷库,建立标准化缺陷传递与同步机制;

  2. 所有平台缺陷完整记录影响条件、故障后果、修复方案,供全团队参考;

  3. 各产品线发布前,必须完成平台缺陷评估,按严重等级分级,梳理整改必要性。

核心目的:杜绝平台小漏洞,演变为量产大事故。

八、复杂系统三大核心原则:接受缺陷的必然

简单的确定性系统(如基础计算器),可以实现输入一致、输出一致。但人机交互、场景复杂的软件系统,本质是不可完全预测的复杂社会技术系统

基于James Christie的复杂系统理论,我们可以总结三条颠覆性原则,重塑对缺陷的认知:

1. 复杂系统不可预测:包含用户、环境、多模块交互的软件系统,行为边界无穷,人力无法穷尽所有测试场景;

2. 系统不等于部分之和:单个组件完美运行,组件间的交互仍可能引发整体失效,代码质量绝非系统质量的唯一标准;

3. 完美代码也可能引发灾难:代码逻辑无错,但随着业务、法律、运行环境迭代,原有合规逻辑可能变成风险隐患。

最终结论:复杂软件系统中,缺陷不可避免。我们无法彻底消灭Bug,只能通过体系化手段,尽早发现、精准管控、降低风险。

九、缺陷预防:最好的Bug,是从未发生的Bug

质量管控的最高境界,不是高效修复缺陷,而是从源头预防缺陷。一套完善的防错体系,覆盖研发全流程:

  1. 评审三件套兜底:需求评审、设计评审、代码评审,层层拦截风险;

  2. 规范体系筑基:统一编码、注释、分支管理标准,通过标准化减少人为失误;

  3. 自动化提效:依托CI/CD持续集成、自动化测试,替代重复人工校验;

  4. 知识库沉淀:汇总典型缺陷、历史事故案例,实现经验复用;

  5. 管控技术债务:拒绝治标不治本的修复,定期清理历史遗留隐患;

  6. 明确职责边界:杜绝推诿扯皮,保障问题闭环;

  7. 打造质量文化:树立零缺陷意识,鼓励主动暴露问题,拒绝虚假共识。

十、落地总结:从个人能力到组织体系升级

软件缺陷的管控,从来不是某一个岗位的责任,而是个人、团队、管理者的协同结果。

对工程师/测试人员(个人层面)

坚持左移思维,提前预判设计、编码、场景风险;规范代码编写与注释,方便问题追溯;遇到Bug多究根因,不急于表面修复。

对技术团队(团队层面)

强制落实评审、自动化门禁机制;对每一起缺陷逃逸事故复盘加固;杜绝无效沟通、伪共识,夯实协作基础。

对管理者(组织层面)

拒绝以牺牲质量换工期,正视技术债务的长期危害;流程缺陷、职责漏洞优先整改;建立“鼓励暴露问题、包容试错、严惩推诿”的质量文化。

写在最后

软件行业有一条永恒的质量公式:预防 > 发现 > 修复

英国邮政局的冤案警示我们:对软件质量的傲慢、对缺陷的轻视,最终会酿成无法挽回的损失。复杂系统的缺陷虽不可彻底消灭,但我们可以用严谨、敬畏、专业的工程思维,持续降低风险。

承认不确定性、正视缺陷的必然性、搭建系统化的防错体系,既是技术从业者的专业素养,更是我们对每一位系统用户的责任与担当。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-06-27 01:37:11 HTTP/2.0 GET : https://g.sjds.net/a/458690.html
  2. 运行时间 : 0.160579s [ 吞吐率:6.23req/s ] 内存消耗:4,462.40kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=92f818ce810a38b5d4521dbfe369a39d
  1. /yingpanguazai/ssd/ssd1/www/g.sjds.net/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/g.sjds.net/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/g.sjds.net/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/g.sjds.net/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/g.sjds.net/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/g.sjds.net/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/g.sjds.net/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/g.sjds.net/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/g.sjds.net/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/g.sjds.net/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/g.sjds.net/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/g.sjds.net/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/g.sjds.net/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/g.sjds.net/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/g.sjds.net/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/g.sjds.net/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/g.sjds.net/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/g.sjds.net/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/g.sjds.net/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/g.sjds.net/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/g.sjds.net/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/g.sjds.net/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/g.sjds.net/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/g.sjds.net/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/g.sjds.net/runtime/temp/8321bd4d2de6fe7dffb246d4ae0c61fd.php ( 12.06 KB )
  140. /yingpanguazai/ssd/ssd1/www/g.sjds.net/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000582s ] mysql:host=127.0.0.1;port=3306;dbname=g_sjds;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000600s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000298s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.007087s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000702s ]
  6. SELECT * FROM `set` [ RunTime:0.004284s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000661s ]
  8. SELECT * FROM `article` WHERE `id` = 458690 LIMIT 1 [ RunTime:0.023100s ]
  9. UPDATE `article` SET `lasttime` = 1782495432 WHERE `id` = 458690 [ RunTime:0.029220s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 65 LIMIT 1 [ RunTime:0.000338s ]
  11. SELECT * FROM `article` WHERE `id` < 458690 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000562s ]
  12. SELECT * FROM `article` WHERE `id` > 458690 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000393s ]
  13. SELECT * FROM `article` WHERE `id` < 458690 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000887s ]
  14. SELECT * FROM `article` WHERE `id` < 458690 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.000603s ]
  15. SELECT * FROM `article` WHERE `id` < 458690 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.000666s ]
0.161983s