当前位置:首页>python>Python 与 C++ :不同算法复杂度下大规模 Bug 暴露的可能性分析

Python 与 C++ :不同算法复杂度下大规模 Bug 暴露的可能性分析

  • 2026-04-16 20:25:21
Python 与 C++ :不同算法复杂度下大规模 Bug 暴露的可能性分析

目录

  1. 1. 问题重述与模型建立
  2. 2. 指数复杂度 
  3. 3. 立方复杂度 
  4. 4. 平方复杂度 
  5. 5. 线性复杂度 
  6. 6. 对数复杂度 
  7. 7. 综合风险评估表
  8. 8. 结论

1. 问题重述与模型建立

1.1 工作流的基本矛盾

很多开发者(尤其是刚入行的朋友)会面临这样一个选择:Python 写起来特别快,不用操心指针、内存分配,但跑起来慢;C++ 跑得飞快,但写一个简单的功能都要考虑类型、边界、内存释放。于是大家自然想到:“先用 Python 写出能工作的版本,确认逻辑没问题,再用 C++ 重写一遍。” 这个思路很聪明,但你可能会担心:万一 Python 因为太慢,根本跑不到足够大的数据量,而某个 Bug 偏偏只在大数据量下才出现,那我不就踩坑了吗?

为了科学地回答这个问题,我们先建立简单的数学模型。

设我们可以忍受的单次调试运行时间为 (例如 10 秒,因为超过 10 秒人就开始不耐烦了)。Python 平均比 C++ 慢  倍,根据实际任务不同, 通常在 5 到 20 之间,最典型的取值是 (也就是说,同样算法下 Python 需要的时间是 C++ 的 10 倍)。

设算法的时间复杂度为  代表数据规模(比如数组长度、矩阵边长、图的顶点数)。Python 和 C++ 的常数因子(CPU 执行每条基本操作的平均时间)分别为  和 ,显然 

在时间  内,Python 能处理的最大规模  和 C++ 能处理的最大规模  满足:

两式相除,消去  和常数因子:

这个公式很关键:它告诉我们,Python 和 C++ 能处理的规模之比,完全由算法复杂度  的形状决定。不同的复杂度,会给出完全不同的  与  关系。

1.2 关于 Bug 的本质:边界条件与规模的关系

在深入分析之前,有必要澄清一个基本事实:从理论上讲,一个算法的完美实现(完全符合其数学描述)是不存在任何 Bug 的。然而,人类在理解算法、沟通细节、编写代码时不可避免地会犯错,因此实际代码中一定有 Bug。

这些 Bug 的触发条件多种多样,但其中很大一类与边界条件密切相关。所谓边界条件,就是数据规模  取某些特定值(如 0、1、最大值)或输入数据呈现某种极端模式(如全部相等、完全逆序)时,算法行为可能出现异常。

边界条件相关的 Bug 通常表现为:

  • • 数组越界:当循环变量达到  或  时,访问了不存在的元素。
  • • 死循环:循环终止条件写错(例如用 < 代替 <=),导致在特定  下无法退出。
  • • 错误的结果:分治算法在处理最小子问题(如  或 )时的返回值不正确。
  • • 资源耗尽:递归深度超过栈限制,或分配的内存量与  的关系计算错误。

这些 Bug 有一个共同特点:它们是否暴露,往往取决于  是否达到某个阈值。例如:

  • • 一个越界错误可能在  时就发生,也可能只在  为奇数时才发生,或者需要  超过某个固定常数(如 1000)才触发。
  • • 递归深度错误通常在  超过递归深度限制时才会暴露(Python 默认 1000,C++ 栈大小约 8MB,可递归数千层)。

因此,当我们讨论“Python 原型能否暴露 C++ 大规模下的 Bug”时,实际上是在问:对于某个边界条件相关的 Bug,其触发阈值  是否落在 Python 能覆盖的规模区间  内? 如果 ,Python 就能发现;如果 ,那么这个 Bug 就会被隐藏——Python 看不到,但 C++ 跑到更大规模时会暴露。

不同算法复杂度下, 和  的相对大小不同,因此隐藏概率也不同。这正是本文后续章节要定量分析的内容。


2. 指数复杂度 

2.1 典型算法

  • • 无剪枝的子集枚举():比如找出一个集合的所有子集,检查每个子集是否满足条件。
  • • 递归斐波那契数列():就是教科书上那个 return fib(n-1)+fib(n-2) 的版本。
  • • 汉诺塔递归()。
  • • 暴力求解旅行商问题( 近似 )。

这些算法的共同特点是:数据量稍微增加一点点,运行时间就爆炸式增长。所以实际中我们很少真的用它们处理  的问题。

2.2 规模关系推导

设 ,代入公式 (1):

取最常见的 (二进制枚举),

也就是说,C++ 只比 Python 多处理大约 3 个数据点。如果你用 Python 能跑 ,那么 C++ 也只能跑到 

打个比方:Python 和 C++ 就像两个人爬一座陡峭的山。Python 爬到 35 米就累得不行了,C++ 体力好一些,但也只能爬到 38 米。两者只差 3 米,根本谈不上“一个在山脚,一个在山顶”。

2.3 隐藏 Bug 的可能性分析

可能性:极低(< 1%)。为什么?

  • • 递归深度:Python 默认递归深度限制是 1000,而指数算法在  时深度只有 40,远小于限制。C++ 多出的 3 层深度不会造成新问题。
  • • 整数溢出:C++ 的 int 类型在  时计算斐波那契数约 ,远未溢出(32位上限约 21 亿)。Python 的整数可以无限大,所以溢出类 Bug 根本不存在。即使有,也不会恰好出现在 35 到 38 这个窄区间。
  • • 边界条件:指数算法通常遍历所有子集,边界情况(空集、全集)在小规模下就已经全部覆盖。一个漏掉某个子集的 Bug,在  时就会算错结果,根本不需要等到 35。

唯一需要注意的特例:如果你在代码里硬编码了一个大小为 40 的静态数组,当  时才会越界。假设 Python 能跑 ,C++ 能跑 ,那么 C++ 会越界而 Python 不会。但这种写法本身就很糟糕,而且你完全可以在 Python 测试中故意把  设成 42 跑一下(虽然慢,但等几分钟也能出结果)。


3. 立方复杂度 

3.1 典型算法

  • • 朴素矩阵乘法:三个嵌套循环,计算 
  • • Floyd-Warshall 全源最短路径:对于稠密图(边很多),求任意两点之间的最短距离。
  • • 某些三维动态规划,比如矩阵链乘的朴素实现。
  • • 枚举所有三元组的三重循环(例如找出三个点构成的三角形面积最大)。

这些算法在  时就需要  次操作,已经比较重了。

3.2 规模关系推导

,由 (1):

当  时,。也就是说,C++ 能处理的规模大约是 Python 的 2.15 倍

具体一点:如果 Python 在 10 秒内能完成  的矩阵乘法(纯 Python 循环),那么 C++ 可以完成 。如果 Python 用 NumPy(底层是 C 和 Fortran),实际差距会小得多,但这里我们讨论的是“同样算法、同样实现风格”的比较。

3.3 隐藏 Bug 的可能性

可能性:中等(约 10%~20%)。为什么比指数高?因为 2.15 倍的规模差距已经足够让某些与  成比例的错误在较小规模下恰好不触发。

具体场景举例

  • • 越界依赖:假设你写了一个三层循环,内层循环的边界写成了 for (int i=0; i<=N; i++),并且访问了 a[i+1]。当  时,a[301] 可能恰好存在(因为数组长度被设为了 ),但  时,a[647] 可能越界。这种 Bug 确实存在隐藏的可能性,但你可以在 Python 测试中故意把数组长度设小一点来模拟。
  • • 缓存不友好的循环顺序:C++ 中,如果你把矩阵乘法的循环写成 i-k-j 顺序而不是标准的 i-j-k,会导致 CPU 缓存命中率极低,运行时间会慢好几倍。但在 Python 中,由于每个元素访问本身就很慢(Python 对象开销大),缓存效应被淹没了,你可能看不出异常。这个 Bug 在 C++ 的大规模下会表现为“运行时间比预期慢 10 倍”,而在 Python 中小规模下看起来正常。所以它确实可能被隐藏。
  • • 数值累积误差:某些立方算法会累加很多浮点数,比如 Floyd-Warshall 更新距离时 dist[i][j] = min(dist[i][j], dist[i][k]+dist[k][j])。如果图中边权很大,累加可能溢出 32 位整数。Python 不会溢出(自动转大整数),C++ 会静默溢出。但溢出与规模关系不大,小规模下也可能发生(如果边权本身就大)。所以这不是规模特有的隐藏问题。

一个真实观察:某同学实现 Floyd-Warshall 时,错误地把中间节点循环放在了最内层。正确的顺序是 for k: for i: for j:,他写成了 for i: for j: for k:。虽然复杂度还是 ,但常数因子大了很多。在 Python 中, 时耗时 10 秒, 时耗时 80 秒(增长了 8 倍,而  倍是正常的),他立刻发现了异常,因为 Python 的慢放大了常数差异。而在 C++ 中,错误顺序下  只需要 0.5 秒,看起来很正常,直到  时才比预期慢 10 倍。有趣的是,这种 Bug 在 Python 中反而更容易暴露


4. 平方复杂度 

4.1 典型算法

  • • 冒泡排序、选择排序、插入排序(最坏情况)。
  • • 朴素最近点对枚举:二重循环计算所有点对的距离。
  • • 动态规划中的最长公共子序列( 版本)。
  • • 图论中稠密图的某些遍历。

平方算法在  时就需要  次操作,Python 勉强能在 10 秒内完成(纯循环),C++ 则可以轻松跑 

4.2 规模关系推导

,由 (1):

当  时,。也就是说,C++ 能处理的规模大约是 Python 的 3.16 倍

4.3 隐藏 Bug 的可能性

可能性:较低(约 5%~10%)

为什么比立方低?因为平方算法的绝对规模已经很大(数千到数万),大多数与规模成比例的 Bug 在  时就会触发。举个例子:

  • • 越界错误:如果你在循环中写了 for i in range(N-1): for j in range(i+1, N+1):,当 j=N 时会越界。这个错误在  时就能测出来,不需要等到 10000。所以这类错误几乎不会被隐藏。
  • • 内存爆炸:平方算法往往需要  的内存,比如存储一个距离矩阵。Python 中纯列表的列表开销极大,可能  时就已经内存不足(每个浮点数是一个独立对象,占用 24 字节以上)。而 C++ 的 vector<vector<double>> 可以轻松存到 。Python 的提前崩溃其实是一种预警,而不是隐藏。
  • • 算法退化:有些平方算法在特定输入下会退化成立方。例如冒泡排序的优化版本,如果忘记在某一轮没有交换时提前终止,那么对于已经有序的数组,它仍然会执行完整的  次比较。在 Python 中,你会明显感觉到有序数组也跑得很慢,从而发现优化缺失。

隐藏风险较高的场景:多线程下的平方算法。Python 由于全局解释器锁(GIL),多线程几乎不能加速 CPU 密集型任务,因此你很少会用 Python 写多线程平方算法。但 C++ 中你可以轻松使用 OpenMP 或 std::thread 并行化。这时候可能出现数据竞争、死锁等并发 Bug,而且它们往往在负载大(即 N 大)时更容易复现。这类 Bug 确实可能被 Python 原型完全隐藏。


5. 线性复杂度 

5.1 典型算法

  • • 数组遍历、线性查找:找一个数组里的最大值。
  • • 简单哈希表操作:往字典里插入 N 个键值对(平均情况)。
  • • 字符串扫描:统计每个字符出现的次数。
  • • 流式处理:对一长串数字求和、求平均值。

线性算法非常快,Python 也能轻松处理千万级的数据。

5.2 规模关系推导

,由 (1):

当  时,C++ 能处理的规模是 Python 的 10 倍

具体数值:Python 在 10 秒内大约可以处理  次简单操作(比如整数加法)。所以 (一亿)。

5.3 隐藏 Bug 的可能性

可能性:很低(约 1%~5%)

因为  已经是一个巨大的规模,覆盖了绝大多数单机应用场景。一个只在  万时才触发的 Bug 极为罕见。可能的例子:

  • • 哈希表退化:Python 的字典在遭遇大量哈希碰撞时可能退化为 。这种攻击通常只需要几千个精心构造的键就能触发,不需要几千万。即使是在均匀随机分布下,碰撞概率也随 N 增大而增加,但 Python 的字典实现有随机化种子,很难在小规模下重现。你可以用专门的哈希碰撞测试工具来检查。
  • • 内存碎片:C++ 中频繁的 new 和 delete 可能导致内存碎片,在分配极大量小对象时失败。Python 的内存管理(对象池)不同,不会出现同样的问题。但这类 Bug 通常与具体的分配模式相关,而非单纯的 N。
  • • 栈溢出:线性算法几乎不使用深度递归,所以栈溢出风险极低。

6. 对数复杂度 

6.1 典型算法

  • • 二分查找:在有序数组中找某个数。
  • • 平衡二叉树的查找、插入(如 C++ 的 std::map,Python 的 set 实际上是哈希表,不是对数复杂度)。
  • • 某些分治算法的顶层,比如快速幂。

6.2 规模关系推导

,代入 (1):

当  时,。假如 Python 能处理 (十亿),那么 C++ 理论上能处理 ——这个数字比宇宙中的原子总数还大得多。但现实中,你根本不可能构造出这么大的数组,因为内存不够。

6.3 隐藏 Bug 的可能性

可能性:可忽略(<0.1%)

因为:

  • • 对数复杂度的算法运行时间极短,Python 和 C++ 都能在毫秒级处理天文数字。
  • • 实际限制规模的是内存,而非时间。Python 能存储的数组大小受限于内存,C++ 同样受限于内存,两者差别不超过常数倍。
  • • 任何实际中会出现的规模下,Python 都能轻松运行。

7. 综合风险评估表

下表总结了不同复杂度下,一个随机 Bug 仅出现在规模区间  内的估计概率。这些数字基于经验与理论分析,不是严格的数学证明,但可以给你一个直观的参考:

复杂度
规模比率 
Python 覆盖的 C++ 规模比例
隐藏 Bug 可能性
主要风险类型
指数 
≈ 100%
< 1%
几乎无
立方 
2.15
46%
10%–20%
缓存优化、循环顺序
平方 
3.16
31%
5%–10%
多线程竞争、内存布局
线性 
10
10%
1%–5%
哈希退化、罕见边界
对数 
极大
接近 0%
< 0.1%
无实际意义

重要说明:表中的“Python 覆盖的 C++ 规模比例”指的是规模数值的比例,而不是 Bug 数量的比例。实际上,Bug 的分布并不是均匀的——绝大多数 Bug 会在规模达到 C++ 上限的 10%~20% 时就暴露,因为边界条件和常见错误模式与 N 成比例。所以真实的隐藏概率远低于表中规模比例对应的数值。


8. 结论

通过算法复杂度理论,我们定量分析了 Python 原型到 C++ 重构过程中,“大规模 Bug 被隐藏”的可能性:

  • • 指数复杂度:C++ 仅比 Python 多处理几个数据点,隐藏概率 < 1%。实际上,这类算法本身就不应该用于大规模问题。
  • • 立方复杂度:规模差距约 2.15 倍,隐藏概率约 10%~20%。主要风险来自缓存优化和循环顺序,但 Python 的慢反而可能提前暴露这些问题。
  • • 平方复杂度:规模差距约 3.16 倍,隐藏概率约 5%~10%。Python 能处理的绝对规模已经很大(数千到数万),覆盖绝大多数实际场景。主要风险来自多线程竞争。
  • • 线性复杂度:规模差距 10 倍,但 Python 能处理千万级数据,隐藏概率约 1%~5%。如果实在担心,可以稍微延长调试时间让 Python 跑更大规模。
  • • 对数复杂度:无实际风险。

核心结论:绝大多数逻辑错误(数组越界、错误递推、边界条件)会在 Python 所能达到的规模内暴露。真正可能被隐藏的是与底层硬件、并发、内存布局相关的 Bug,而这些可以通过专用工具(如 AddressSanitizer、ThreadSanitizer)在 C++ 开发阶段直接检测。

因此,请放心使用“Python 原型 + C++ 重构”的工作流。只要你在 Python 阶段做好充分的边界测试(尤其是  等小规模下的极端情况),并理解不同复杂度下规模差距的数学关系,那些“只在大规模下出现的 Bug”成为你绊脚石的概率是相当低的。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-04-17 08:05:53 HTTP/2.0 GET : https://f.mffb.com.cn/a/485406.html
  2. 运行时间 : 0.103953s [ 吞吐率:9.62req/s ] 内存消耗:4,636.64kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=540dfe40fc54ce0e247f2cf8eba72cd8
  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.000556s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000653s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000273s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000288s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000490s ]
  6. SELECT * FROM `set` [ RunTime:0.000207s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000528s ]
  8. SELECT * FROM `article` WHERE `id` = 485406 LIMIT 1 [ RunTime:0.000465s ]
  9. UPDATE `article` SET `lasttime` = 1776384353 WHERE `id` = 485406 [ RunTime:0.008282s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000256s ]
  11. SELECT * FROM `article` WHERE `id` < 485406 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000652s ]
  12. SELECT * FROM `article` WHERE `id` > 485406 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.002972s ]
  13. SELECT * FROM `article` WHERE `id` < 485406 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.004133s ]
  14. SELECT * FROM `article` WHERE `id` < 485406 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.000802s ]
  15. SELECT * FROM `article` WHERE `id` < 485406 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.000919s ]
0.105476s