当前位置:首页>python>2天,用 AI 把 101 个 Python 算法翻译成 Zig

2天,用 AI 把 101 个 Python 算法翻译成 Zig

  • 2026-03-14 14:25:18
2天,用 AI 把 101 个 Python 算法翻译成 Zig

首次编译通过率 96%(101 算法全量),几何平均加速比 26.3x,人工修改 444 行

这是一篇关于"AI 能不能写系统语言"的实验报告。我用 Claude 和 Codex 把 TheAlgorithms/Python 仓库的 101 个算法翻译成了 Zig,严格记录了每一次成功和失败,然后跑了 89 组基准对比。这篇文章讲三件事:为什么做、怎么做、结果如何。


目录

  1. 为什么做这件事
  2. 实验设计
  3. 核心结果
  4. 三种失败模式
  5. Python vs Zig 性能对比
  6. 遇到的问题和解决方案
  7. 后续可能遇到的问题
  8. 方法论总结
  9. 给工程师的实用建议

一、为什么做这件事

起因

TheAlgorithms 是 GitHub 上最大的开源算法教学仓库,Python 版 218k+ star。官方确实有 Zig 版(354 star),但收录的算法只有 45 个,覆盖范围远比 Python 版稀疏。

2025 年起 "vibe coding" 概念流行——让 AI 写代码,人类只做方向把控和质量验证。但大多数 vibe coding 案例都是 Python/JS 这类高层语言,鲜有人用 AI 写 系统语言

目的

我想回答三个问题:

  1. AI 翻译跨语言范式的算法,成功率有多高? Python(动态类型、GC、大整数)→ Zig(静态类型、手动内存、无隐式行为),这是光谱两端的翻译。
  2. 失败时是怎么失败的? 编译错误、逻辑错误、还是安全漏洞?
  3. 翻译出来的 Zig 到底比 Python 快多少? 不是一句"编译语言更快"就完事——要量化到每个算法。

核心假设:如果 AI 能把 Python 算法正确翻译成 Zig,说明它真正"理解"了算法语义,而不是在做字符串替换。

为什么选 Zig

特性
Python
Zig
类型系统
动态
静态,编译期求值
内存管理
GC
手动 allocator
错误处理
异常
编译期强制 try/catch
整数溢出
自动大整数
Debug 模式 panic
布尔运算符
and
/or
and
/or(非 &&/`

Zig 的"无隐式行为"哲学意味着 Python 里不会出问题的代码,在 Zig 里可能直接 panic。这正好构成了一个压力测试。


二、实验设计

受控翻译流程

┌─────────────────────────────────────────────────────┐│                   Vibe Coding 工作流                  ││                                                      ││  TheAlgorithms/Python  ──→  AI 生成 Zig 文件          ││  (参考实现)                 (实现 + 测试,自包含)       ││                                 │                    ││                                 ▼                    ││                          zig build test              ││                            │        │                ││                         通过 ✅    失败 ❌            ││                            │        │                ││                         记录日志   记录错误类型         ││                            │     修复后重试            ││                            ▼                         ││                        QA 人工评审                     ││                     (边界条件/安全/语义)                ││                            │                         ││                            ▼                         ││                       合入 + 基准测试                  │└─────────────────────────────────────────────────────┘

每个 .zig 文件严格自包含:实现代码 + test 块在同一个文件里,不允许跨文件依赖。

分批推进,逐步提高难度

阶段
内容
算法数
难度
模型
Phase 1: Spike
linear_search 等 5 个基础算法
5
Easy
Claude Opus 4.6
Phase 2 Batch 1
排序、查找、数学
15
Easy
Claude Opus 4.6
Phase 2 Batch 2
需要内存分配的算法
13
Medium
Codex5.3 Xhigh
Phase 3
链表、堆、BST、图
8
Hard
Claude Opus 4.6
Phase 4
位运算、字符串、回溯、矩阵、贪心
35
Mixed
Claude Sonnet 4.6
Phase 5
高级图、高级 DP、数论、高级数据结构
25
Hard
Codex5.3 Xhigh

每批完成后插入 QA 评审:人工检查边界条件、运行时安全、与 Python 参考的语义一致性。

严格的记录规则

  • 不美化数据——失败就是失败
  • 区分三种失败:编译失败 / 测试断言失败 / 运行时安全失败
  • 记录人工修改的精确行数
  • 完整日志公开在仓库 EXPERIMENT_LOG.md

三、核心结果

总览

╔══════════════════════════════════════════════╗║           TheAlgorithms-Zig v0.1.0           ║║                                              ║║   101 算法  ·  448 测试  ·  12 分类           ║║   首次编译通过率 96.0%(97/101 算法)          ║║   人工修改 444 行 (含 QA 修复 432 行)          ║║   89 个算法完成 Python vs Zig 基准对比        ║║   几何平均加速比 26.3x                        ║╚══════════════════════════════════════════════╝

按阶段成功率

阶段
首次编译通过
首次测试全通过
人工修改行数
Phase 1 (5)
5/5 (100%)
5/5
0
Batch 1 (15)
15/15 (100%)
15/15
0
Batch 2A (6)
4/6 (67%)
2
Batch 2B (7)
7/7 (100%)
0
Phase 3 (8)
7/8 (87.5%)
7/8
1
Phase 4 (35)
34/35 (97%)
30/35
6
Phase 5 (25)
25/25 (100%)
25/25
4
QA 修复
N/A
N/A
432

注意 QA 修复阶段的 432 行——这是人工评审发现的运行时安全问题和语义对齐修复,不是 AI 的编译/测试失败。这个数字本身就是一个核心发现。

12 个算法分类覆盖

TheAlgorithms-Zig/├── sorts/            12 个  (冒泡、快排、堆排、基数排序...)├── searches/          6 个  (二分、跳跃、插值、三元...)├── maths/            14 个  (GCD、素数筛、欧拉函数、中国剩余定理...)├── data_structures/  11 个  (栈、队列、链表、BST、AVL树、Trie...)├── dynamic_programming/ 13 个  (背包、编辑距离、最长递增子序列...)├── graphs/           10 个  (BFS、DFS、Dijkstra、Floyd-Warshall...)├── bit_manipulation/  6 个  (位计数、缺失数、位翻转...)├── conversions/       4 个  (十进制⇄二进制⇄十六进制)├── greedy_methods/    4 个  (买卖股票、分数背包...)├── matrix/            5 个  (矩阵乘法、旋转、螺旋打印...)├── backtracking/      6 个  (排列、组合、N皇后、数独...)└── strings/          10 个  (KMP、Rabin-Karp、Z函数...)

四、三种失败模式

这是本文最有价值的部分。101 个算法的翻译过程中,失败可以被精确归类为三种模式,每种有完全不同的根因和修复策略。

失败模式一:Zig 0.15 API 滞后 (3 次)

AI 训练数据中的 Zig API 不是最新版。

典型案例:

// ❌ AI 生成的代码const val = stack.pop();  // AI 以为 pop() 返回 T// ✅ Zig 0.15 实际行为const val = stack.pop().?;  // pop() 返回 ?T,需要 .? 解包

3 次出现:ArrayListUnmanaged.pop() 返回 optional、@divTrunc 替代 / 做有符号整除、std.mem.sort 比较器签名变更。每次修复 1-2 行。

根因: 语言版本快速迭代 → AI 训练数据滞后。 解法: 写一份 "Zig 0.15 常见坑" 清单放进 prompt 上下文。Phase 5 采用此策略后,25 个算法 0 次 API 相关编译失败。

失败模式二:测试预期值手写错误 (5 次)

这是我最没预料到的失败模式。算法实现完全正确,但测试的预期值写错了。

┌──────────────────────────────────────────────────┐│  KMP 搜索测试失败案例                              ││                                                   ││  输入: text = "knuth_morris_pratt", pattern = "tt"││                                                   ││  AI 期望: index = 15                              ││  实际值:  index = 16  ← AI 手数位置时数错了        ││                                                   ││  k n u t h _ m o r r i s _ p r a t t              ││  0 1 2 3 4 5 6 7 8 9 ...        1 1              ││                                  6 7              ││                                  ↑                ││                              "tt" 起始位置          │└──────────────────────────────────────────────────┘

另外 4 个案例类似——AI "想象"了排列组合的 DFS 顺序、子集枚举的索引位置、数独求解的格子值,全都是手数的,没有用程序验证。

根因: AI 写测试时用"直觉"而非"计算"生成预期值。 解法: 让 AI 先用 Python 参考实现计算预期值,再写进 Zig 测试断言。

失败模式三:防御性编程盲区 (QA 发现,432 行修复)

这是最严重的失败模式,也是人工 QA 存在意义的最好证明。

AI 生成的算法对有效输入几乎百分百正确,但几乎不检查无效输入

问题
严重度
在 Python 里
在 Zig 里
BFS 邻接点越界
Python 参考实现用 dict 表示图,不存在数组越界
Zig 用数组做邻接表,越界直接 panic
knapsack weights/values 长度不一致
抛 ValueError
越界访问,未定义行为
gcd 输入 minInt(i64)
大整数自动处理
整数溢出 panic
powerMod 除数为 0
抛 ZeroDivisionError
除零 panic

根因有两层: 第一,Python 参考实现的数据结构选型(dict、列表推导、大整数)天然回避了很多边界问题,Zig 的数组实现则把这些问题暴露出来。第二,AI 的训练数据以高层语言为主,缺乏"系统语言需要显式边界检查"的意识。

解法: QA 评审是不可省略的环节。两次 QA 共修复 432 行代码——比 AI 正式翻译的修改量(8 行)多了 54 倍

翻译阶段人工修改:     ██ 8 行QA 阶段人工修改:      ████████████████████████████████████████████ 432 行→ 98% 的人工干预发生在 QA 阶段,而非翻译阶

五、Python vs Zig 性能对比

"Zig 比 Python 快"是一句正确的废话。但快多少?在什么类型的算法上快?有没有 Python 反而更快的场景?

我们对 89 个可对齐的算法做了严格基准测试。

总览

指标
数值
可对齐基准算法数
89
Checksum 一致率
100% (89/89)
算术平均加速比
219x
中位数加速比42x
几何平均加速比26.3x
Zig 胜出
82/89 (92%)
Python 胜出
7/89 (8%)

算术平均被位运算的 9609x 极端值拉高。几何平均 26.3x 和中位数 42x 更能反映真实体感。

分类加速比热力图

Top 10:Zig 碾压 Python

#
算法
分类
Python
Zig
加速比
1
reverse_bits
bit_manipulation
650ms
68μs
9609x
2
count_set_bits
bit_manipulation
1.7s
570μs
3005x
3
power_of_4
bit_manipulation
373ms
567μs
658x
4
missing_number
bit_manipulation
3.8ms
6.7μs
562x
5
is_power_of_two
bit_manipulation
362ms
673μs
538x
6
max_subarray_sum
dynamic_programming
29ms
65μs
450x
7
hamming_distance
strings
5.1ms
12μs
432x
8
jump_search
searches
62ms
154μs
405x
9
matrix_multiply
matrix
51ms
222μs
229x
10
climbing_stairs
dynamic_programming
2.5ms
11μs
221x

为什么位运算差距最大?

n & (n-1) 在 Zig 里编译成 单条 CPU 指令。Python 里同样的操作需要:对象查找 → 方法分派 → 大整数协议检查 → 结果对象创建。一个操作的开销差距是 1000x 量级,循环百万次后差距被线性放大。

Bottom 7:Python 反超 Zig

算法
分类
Python
Zig
加速比
原因
catalan_numbers
DP
470μs
559μs
0.84x
计算量太小,噪声淹没
knuth_morris_pratt
strings
5.8μs
16μs
0.36x
计时精度问题
decimal_to_binary
conversions
3.6μs
16.7μs
0.22x
计时精度问题
binary_to_hexadecimal
conversions
4.0μs
23.2μs
0.17x
计时精度问题
merge_sort
sorts
68ms534ms0.13x唯一的"真实"逆转
fractional_knapsack
greedy
2.4μs
18.8μs
0.13x
计时精度问题
decimal_to_hexadecimal
conversions
641ns
20.2μs
0.03x
计时精度问题

7 个中有 6 个是计时精度问题(绝对时间 < 100μs 时,Zig std.time.Timer 的调用开销占主导)。

唯一的"真实"逆转是 merge_sort: Zig 的教学级实现在每次递归分割时 alloc/free 临时数组,而 Python 的 sorted() 底层是 TimSort(C 实现) ——预分配缓冲区、几乎零额外分配。这是"教学级实现 vs 30 年优化的标准库"的对比。

基准方法论

确保数据可信赖的三重保障:

  1. 同一输入:Python 和 Zig 使用相同数据规模和随机种子
  2. Checksum 验证:89/89 输出校验通过,确保计算的是同一件事
  3. 口径对齐binomial_coefficient 限制到 n ≤ 66(避免 Python 大整数 vs Zig u64 的不公平对比)

运行环境:CPython(无 NumPy),Zig 0.15.2 ReleaseFast,同一 Linux 机器顺序执行。


六、遇到的问题和解决方案

问题 1:Zig 0.15 是新语言版本,AI 的知识滞后

问题
具体表现
解决方案
pop()
 返回类型变了
ArrayListUnmanaged.pop()
 从 T 改为 ?T
写入 prompt 上下文的"Zig 0.15 API 注意事项"清单
整数除法语义变了
有符号整数不能用 /,必须用 @divTrunc
同上
sort 比较器签名变了
std.mem.sort
 不再接受 context-type 范式
同上

效果: Phase 5(采用 API 清单后)25 个算法 0 次 API 相关失败。

问题 2:无符号整数下溢在 Zig 里是致命的

Python 里 range(n-1, -1, -1) 完全安全,Zig 里 usize 减到 0 再减 1 = panic。

// ❌ 危险:i == 0 时 i -= 1 下溢while (i >= 0) : (i -= 1) { ... }// ✅ 安全:先判断 i > 0 再递减while (i > 0) { i -= 1; ... }

解决方案: 在 CLAUDE.md 项目指令中显式列出此模式,AI 后续批次几乎不再犯。

问题 3:AI 写的测试不够"怀疑性"

AI 生成的测试只覆盖 happy path。空数组、单元素、重复元素、极大值——这些边界条件几乎不被测试。

解决方案: 每批完成后做人工 QA 评审。Phase 2 QA 发现 12 个风险点,Phase 3 QA 发现 4 个。

问题 4:基准测试口径对齐

Python 大整数无上限,Zig u64 最大 ~1.8×10¹⁹。binomial_coefficient 的测试数据一旦超出 u64 范围,Python 正常计算但 Zig 返回 error.Overflow,导致 checksum 无法对齐。

解决方案: 将 binom_pairs 统一收敛到 n ∈ [20, 66]k ∈ [1, 20],确保结果在 u64 可表示范围内。

问题 5:build.zig.zon初始路径配置错误

Zig 项目初始化模板生成的 .paths 包含 "src"(不存在的目录),且缺少实际的算法目录。

解决方案: 在 Phase 6 统一修复,替换为 12 个实际分类目录。


七、后续可能遇到的问题

风险一:Zig 的 API 断层会持续加剧,直到 1.0

这是所有风险里最确定、最不可绕过的一个。

Zig 目前处于 0.x 阶段,每个小版本都包含大量 breaking changes。本项目基于 0.15.2 开发,但 Zig 0.16.0 在本文写作期间已经发布。从历史规律来看,0.13→0.14 有 40+ 处 API 变更,0.14→0.15 同样,预计到 1.0 还有 4-6 个破坏性版本。

问题的严重性不只是"要改代码"。更深的影响是:AI 的 Zig 知识会越来越滞后。0.15 的 API 行为刚被 AI 学习,0.16 又出来了新变化,0.17 又来了——AI 在任意时间点的 Zig 知识都会是"上一个版本"的知识。这不是能靠 prompt 清单完全解决的问题,而是一个结构性的持续摩擦。

实际影响预估: 升级到 0.16 后,预计 101 个算法中有 10-20 个需要适配,主要集中在 allocator 接口变更、builtin 函数重命名、错误集合语法调整三类。CI 可以快速暴露问题,但每次大版本升级仍需一轮 AI 重生成 + 人工 QA。


风险二:CPython JIT 会实质性压缩 Zig 的性能优势

文章结论"几何平均加速比 26.3x"的基准是 CPython 解释执行。这个前提在接下来 2-3 年内会发生显著变化。

CPython 3.13 已正式发布实验性 JIT。CPython 3.14(开发中)的 JIT 将更成熟,目标是对紧循环场景实现 2-5x 加速,恰好覆盖我们的绝大多数算法。

量化影响:如果 CPython JIT 平均带来 3x 加速,当前 26.3x 几何均值将压缩到 约 8-9x,中位数 42x 压缩到 约 14x,位运算的 610x 中位数压缩到 约 200x——依然显著,但不再有量级的压倒性优势。

这不是悲观情绪,而是工程现实:今天 "Zig vs CPython" 的数据,三年后读起来可能已经高估了 Zig 的优势


风险三:基准测试框架的可信度问题

当前基准数据有几个系统性局限:

局限 1:教学实现 vs 标准库的不公平对比。 merge_sort 用了 Zig 教学实现但对比的是 Python 的 sorted()(底层 C 实现的 TimSort)。这不是孤立案例——所有 Python"标准"操作(list.sort, dict 查找, heapq)背后都是 C 级别的实现。我们的对比更接近"Zig 教学代码 vs Python 的生产级 C 扩展",而非真正的语言性能对比。

局限 2:单机顺序执行,无统计置信区间。 所有测试在同一台机器上顺序执行,系统噪声(CPU 频率调度、cache 热身、后台进程)会影响结果,且没有报告标准差。89 个算法的加速比里,至少有 15-20 个是在"噪声区间"内的(绝对时间 < 500μs)。

局限 3:测试数据规模可能偏小。 部分算法的 benchmark 输入(如矩阵乘法用的 10x10 矩阵?)可能太小,导致两种语言都在"初始化开销"区间,而非"计算密集"区间。


八、方法论总结

Vibe Coding 的四条铁律

┌─────────────────────────────────────────────────────┐│                                                      ││  1. 分批 + 日志                                      ││     每批限定数量和难度,严格记录成功/失败指标          ││     不美化数据——失败就是失败                          ││                                                      ││  2. 失败分类                                         ││     编译失败 ≠ 测试断言失败 ≠ 运行时安全失败          ││     它们的根因和修复策略完全不同                       ││                                                      ││  3. 必须有人工 QA                                    ││     AI 生成 + 人工评审是最佳搭配                      ││     97% 的人工干预发生在 QA 阶段,不是翻译阶段        ││                                                      ││  4. 给 AI 足够的上下文                                ││     API 坑清单 + 参考实现路径 + 文件模板               ││     显著提高成功率(Phase 5 = 100% 首次通过)          ││                                                      │└─────────────────────────────────────────────────────┘

什么有效

  1. 批量生成 + 人工 QA 比逐个精雕细琢效率高得多。101 个算法两天完成。
  2. 统一的文件模板 大幅降低了 AI 出错率。每个文件都是"实现 + 测试"自包含结构。
  3. 明确的参考实现 消除了算法歧义。AI 知道"对标 Python 那个版本"。
  4. testing.allocator 自动检测内存泄漏 —— AI 可能写出泄漏代码,但测试框架  自动捕获。

什么无效

  1. 让 AI 自己写 QA 测试 不够。AI 倾向于只测试 happy path。
  2. 跨批次上下文 帮助有限。每个文件独立翻译,AI 不需要理解项目整体架构。
  3. 期待 AI "自我纠正" 不现实。测试预期值写错时,AI 无法判断是预期值错了还是实现错了。

九、给工程师的实用建议

什么时候该用 AI 做跨语言翻译

适合
不适合
独立、自包含的函数/算法
需要理解大型代码库架构的重构
有明确参考实现可对标
需要从零设计 API 的场景
目标语言有编译期安全检查
目标语言依赖运行时约定(如 C 指针)
可以做自动化测试验证
只能通过集成测试验证的系统

定量结论

发现
数据支撑
AI 可以高效翻译 Python→Zig
96.0% 首次编译通过率(97/101 算法)
翻译质量随算法复杂度变化不大
Easy 100% vs Hard 87.5-100%
最大风险不是算法错误,是安全盲区
QA 修复 432 行 vs 翻译修复 12 行
测试质量是最薄弱环节
5/6 的 Phase 4 失败是测试预期值错误
Zig 典型加速比为 26-42x
几何平均 26.3x,中位数 42x
位运算场景加速比最极端
最高 9609x
微秒级基准数据不可靠
7 个 Python "反超" 中 6 个是计时精度问题

仓库信息

  • GitHub:https://github.com/lingengyuan/TheAlgorithms-Zig
  • 规模: 101 algorithms · 448 tests · 12 categories · 89 benchmarked
  • 许可: MIT License
  • 完整实验日志:EXPERIMENT_LOG.md
  • 基准数据:benchmarks/python_vs_zig/

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-03-27 22:28:16 HTTP/2.0 GET : https://f.mffb.com.cn/a/477813.html
  2. 运行时间 : 0.108190s [ 吞吐率:9.24req/s ] 内存消耗:4,810.77kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=c1a8af4fc7619be2ba797159db23cce5
  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.000684s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000979s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000407s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000272s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000658s ]
  6. SELECT * FROM `set` [ RunTime:0.000228s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000719s ]
  8. SELECT * FROM `article` WHERE `id` = 477813 LIMIT 1 [ RunTime:0.000722s ]
  9. UPDATE `article` SET `lasttime` = 1774621696 WHERE `id` = 477813 [ RunTime:0.004701s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000307s ]
  11. SELECT * FROM `article` WHERE `id` < 477813 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000604s ]
  12. SELECT * FROM `article` WHERE `id` > 477813 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000591s ]
  13. SELECT * FROM `article` WHERE `id` < 477813 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.004516s ]
  14. SELECT * FROM `article` WHERE `id` < 477813 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.005119s ]
  15. SELECT * FROM `article` WHERE `id` < 477813 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.010926s ]
0.109986s