乐于分享
好东西不私藏

你的电脑每秒能做多少次浮点运算?—— FLOPS 的故事

你的电脑每秒能做多少次浮点运算?—— FLOPS 的故事

一个 1992 年的 C 程序,穿越三十余年,可能会在你的处理器上测出了新答案。


1. FLOPS 是什么?

FLOPS = FLoating-point Operations Per Second(每秒浮点运算次数)。

通俗地讲:你的处理器一秒钟能做多少次浮点数运算。

为什么强调"小数点"?因为整数运算(1+1=2)和浮点运算(3.14159 × 2.71828 = ?)在硬件上走的是两条完全不同的路。浮点运算要处理指数、尾数、规格化、舍入——每一步都得靠专门的电路来完成。所以 FLOPS 衡量的是处理器最"重"的计算能力。

我们经常看到的 MFLOPS(Mega-FLOPS)是百万次/秒,GFLOPS(Giga-FLOPS)是十亿次/秒,TFLOPS(Tera-FLOPS)是万亿次/秒。


2. 理论 FLOPS 怎么算?

一个处理器的理论峰值 FLOPS 可以精确算出来:

理论 FLOPS = 核心数 × 每核心每周期浮点指令数 × 主频

以一颗 16 核处理器为例,每核每周期可执行 16 次单精度浮点运算(2 条 256-bit FMA),最大加速频率 5.4 GHz:

16 核 × 16 FLOP/cycle × 5.4 GHz = 1382.4 GFLOPS ≈ 1.38 TFLOPS

双精度减半(256-bit 寄存器只能装 4 个 double),所以双精度理论峰值大约 691 GFLOPS

你会在 CPU 规格里看到"1 TFLOPS"这种数字,甚至不需要跑任何程序,拿纸笔就能算出来。

那问题来了:理论值和实际一致吗?

其实差得远。


3. 理论很美,现实很骨感

理论峰值 FLOPS 的假设是:

  1. 所有核心都在跑浮点运算,没有停顿
  2. 数据永远在寄存器里等着,不需要访存
  3. 每条 FMA 指令都完美流过流水线,没有任何气泡
  4. 分支预测 100% 正确,缓存全部命中

这些假设同时成立的唯一场景是:不存在。

真实程序里会怎样?

  • 内存墙:数据要从内存加载过来,延迟是寄存器访问的 100–200 倍 [^3]
  • 分支误判:if/else 预测错了,流水线得清空重来
  • 指令混合:不可能 100% 都是 FMA,还得做加减乘除、搬运数据
  • 依赖链:后一条指令要等前一条的结果,流水线只能干等着
  • 散热降频:全核满载 → 发热 → 撞功耗墙 → 自动降频。笔记本散热约束下,全核满载时撑不到标称最大频率

所以需要实测 FLOPS,用一个程序真正跑一遍,算出来到底是多少。


4. 如何实测 FLOPS?—— 从 Linpack 到 flops.c

业界最有名的浮点性能测试是 LINPACK —— 解一个巨大的稠密线性方程组,是 TOP500 超算排名的官方基准。但 LINPACK 测的不光是浮点算力,也在测内存带宽。

还有一个更纯粹的方案:flops.c [ https://github.com/Kivy-CN/flops ]

这个程序最初由 Al Aburto 在 1992 年于美国海军海洋系统中心(NOSC,位于加利福尼亚州圣地亚哥)编写 [^4],总共约 1500 行 C 代码。思路极其朴素:

选 8 个不同的定积分计算题,每道题里的四则运算次数都是预先数好的。掐表跑一遍,用"总浮点操作数 ÷ 耗时"算出实测 MFLOPS。


5. flops.c 的巧妙设计

5.1 八个计算模块

程序设计了 8 个独立模块,每个模块算一个定积分——比如 ∫sin(x)dx、∫cos(x)dx、∫tan(x)dx、用泰勒级数求 π 等等。

每个模块里每次循环迭代的浮点运算次数是一个个数过的

模块
FADD(加)
FSUB(减)
FMUL(乘)
FDIV(除)
总计
除法占比
1
7
0
6
1
14
7.1%
2
3
2
1
1
7
14.3%
3
6
2
9
0
17
0.0%
4
7
0
8
0
15
0.0%
5
13
0
15
1
29
3.4%
6
13
0
16
0
29
0.0%
7
3
3
3
3
12
25.0%
8
13
0
17
0
30
0.0%

除法在这里很关键——FDIV 比乘法慢得多(现代 CPU 上可能仍然慢 3–10 倍 [^2]),所以混合不同除法占比的模块可从不同角度观察性能。模块 7 有 25% 的除法,算是"除法密集型";模块 3、4、6、8 完全不含除法,测纯算术吞吐。

5.2 自适应校准:机器快慢都公平

程序启动时不知道你这台电脑有多快。如果是 1992 年的 486,循环 15625 次可能就要几秒;如果是 2025 年的 16 核处理器,15625 次连眨眼都来不及。

所以 flops.c 有一个自适应校准循环:先跑一次,如果时间太短就把循环次数翻倍,一直翻到至少跑满 15 秒为止。最终循环数可能是 512,000,000(5.12 亿次),这样测量结果才有统计意义。

5.3 四个综合指标

跑完 8 个模块后,程序输出四个加权 MFLOPS 值:

  • MFLOPS(1):模块 2+3 的加权组合,9.6% FDIV,和老版本兼容
  • MFLOPS(2):模块 1+3+4+5+6+7 的加权组合,9.2% FDIV,不含难以向量化的模块 2
  • MFLOPS(3):同样的组合但把 FDIV 降到 3.4%
  • MFLOPS(4):模块 3+4+6+8,0% FDIV,纯加减乘

这四条线让你看到处理器在不同指令混合下的表现——有点像测汽车油耗:市区、高速、综合、满载爬坡,四个工况各跑一遍。


6. 从 C 到全世界——这段代码的漂流记

flops.c 在 1992 年诞生后,很长一段时间就静静躺在 Al Aburto 的 FTP 目录里。直到有一天——

Brian Olson 和 flops 的故事

Brian Olson 的父亲在洛斯阿拉莫斯国家实验室(Los Alamos National Laboratory)工作。1992 年,他父亲拿到了这份 flops.c 的代码——当超算中心的工程师们拿到一台新机器时,就花一分钟跑一下这个小程序,看一眼它到底有多快。Brian 从他父亲那里得到了这份代码,2014 年把它放到了 GitHub 上(github.com/brianolson/flops)。

在项目的 README 里,Brian 这样写道(以下是原文和忠实的中文翻译):

One day my dad worked on supercomputers at Los Alamos National Laboratory and sometimes he would spend a minute running a little test to see about how fast a new supercomputer was. That test is here as flops.c very much as I received it in 1992. Your phone is probably much faster than the fastest supercomputer of 1992.

很久以前,我的父亲在洛斯阿拉莫斯国家实验室从事超算工作。有时候他要花上一分钟来跑一个小小的测试程序,估一下一台新超算大概有多快。这个测试程序就在这里——flops.c,几乎和我 1992 年拿到它时一模一样。如今你口袋里的那台手机,大概比 1992 年全世界最快的超级计算机还要快。

This isn't a very good benchmark, but it's simple and easy. It runs a few basic numeric algorithms with a known number of adds, subtracts, multiplies, and divides, and figures out how many floating point operations per second your CPU can do. It doesn't take advantage of multi-core or SIMD instructions. It doesn't exercise the memory system and probably all fits in L1 cache. It just tests how fast your CPU can do math (and that your compiler isn't terrible at making that happen).

这并不是一个很好的基准测试,但它足够简单。它跑几个基础的数值算法,每一次加法、减法、乘法、除法的次数都精确可知,然后算出你的 CPU 每秒能做多少次浮点运算。它不用多核,不用 SIMD 指令,也不考验内存系统。所有的计算大概全都在 L1 缓存里完成。它只做一件事——测你的 CPU 算数学有多快(以及你的编译器有没有拖后腿)。

Over the years I transliterated flops.c into other languages to test them and their compilers and interpreters. Python has a pretty slow interpreter, around 1–5% of the speed of C. Javascript got amazingly good and can run 80–90% of the speed of C. Java got to that speed around 2007 or 2008. The Go compiler is surprisingly good for a newer language. Julia is a newer language that should have the potential for running full speed but apparently still needs some tweaking (as of 2018-05).

这些年来我把 flops.c 一一转译成了其他语言,用来测试它们的编译器和解释器。Python 的解释器相当慢,大约只有 C 速度的 1%–5%。JavaScript 进步惊人,能跑到 C 的 80%–90%。Java 大概在 2007 到 2008 年间达到了这个水平。Go 的编译器对于一个新兴语言来说质量出奇地好。Julia 理论上具备跑满全速的潜力,不过显然还需要一些打磨(以上评价截至 2018 年 5 月)。

Brian 转译的版本包括:

  • flops.c —— 原始的 C 版本
  • flops.java —— Java
  • flops.js / flops.html —— JavaScript(在浏览器里就能跑)
  • flops.go —— Go
  • flops.jl —— Julia
  • flops.py —— Python

这些代码能够用来对比不同语言和运行时的底层效率:

语言
相对速度(vs C)
原因
C (gcc -O2)
100%
基准
Java
80–90%
JIT 编译,热点优化接近原生
JavaScript (V8)
80–90%
同样靠 JIT,V8 引擎非常成熟
Go
60–80%
编译型语言,但 GC 和逃逸分析有开销
Julia
变化大
依赖类型推断和预热,第一次跑和后续差距大
Pure Python
1–5%
解释执行,每次循环都在逐条"解释"字节码

Python 的数字特别扎眼——同样的算法,解释型 Python 只有 C 的 1%–5% 速度。Python 选择了灵活性和动态性,而不是极致速度。需要速度的时候,Python 生态里有 NumPy、Cython、Numba 这些加速方案。


7. 2025 年的升级

2021 年前后,我把 Brian 仓库里的 Python 2 版本适配到了 Python 3,建了一个衍生仓库(github.com/Kivy-CN/flops),同时在 README 里加了 Brian 原始故事的中文说明。当时这个版本还比较简单,只做了最基本的 Python 3 兼容。

到了 2026 年,发现这个项目还有很大的升级空间。

原版 flops.c 发布于 1992 年,那时候:

  • CPU 是单核心的(Intel 80486 时代)
  • 没有 pthreads,多线程还是个新鲜概念
  • 计时用的是 getrusage() 系统调用,精度到毫秒
  • 输出格式固定,没有 JSON,没有 CLI 参数

三十多年后的今天,彻底翻新了一遍,覆盖 C、Go、Python、Rust 四种语言:

C 版本 (flops.c V3.0)

  • C11 标准,清理了所有 K&R 遗留语法,用上了现代类型系统
  • POSIX pthreads 多线程并行——8 个模块中 7 个可并行,自动按线程数分割迭代区间;模块 2 因循环依赖保持串行
  • clock_gettime(CLOCK_THREAD_CPUTIME_ID):纳秒级精度,而且测的是每线程的 CPU 时间而非墙钟时间,多核场景下计时更准
  • 命令行参数-j N(线程数)、-t SEC(运行时长)、--json--all-modes
  • --all-modes 自动对比单线程 vs 多线程,输出加速比表格
  • JSON 输出:方便脚本和 CI/CD 解析

Go 版本 (flops.go V3.0)

  • 全新重写,基于 goroutine + sync.WaitGroup 并行
  • flag 标准库 CLI,和 C 版参数对齐
  • 同样提供 --json--all-modes
  • 单文件 go build 就行,零外部依赖

Python 版本 (flops.py V3.0)

  • 三种并行模式
    • --mode mp(默认):ProcessPoolExecutor,真正的多核并行——绕过全局解释器锁(GIL)
    • --mode threadThreadPoolExecutor,有意展示 GIL 的瓶颈效应
    • --mode numpy:NumPy 向量化,把一个块的循环完全交给底层 C 来跑
  • argparse CLI-j-t--mode--all-modes--json--repeat N
  • --repeat N 统计模式:多次运行后输出 mean/min/max/stddev
  • 对比模式:一条命令同时跑 serial / mp / thread / numpy 四种策略
Mode          Workers    MFLOPS(1)    MFLOPS(2)    MFLOPS(3)    MFLOPS(4)  Wall(s)
serial              1        40.33        38.68        34.91        33.13    21.20
mp                  4        43.22       104.80        96.72        93.75    12.10
thread              4        41.34        42.83        38.93        38.23    20.27
-----------------------------------------------------------------------------------
Speedup vs serial    serial: 1.00x    mp: 2.83x    thread: 1.15x

一目了然:

  • 多进程(mp)4 核加速 2.83 倍 → GIL 不是问题
  • 多线程(thread)几乎零加速 → GIL 把性能掐死了
  • NumPy 块内向量化 + 多进程分摊,理论上可以更猛

Rust 版本 (flops_rs V3.0)

  • 基于 rayon 并行迭代器 + clap derive CLI + serde JSON
  • cargo build --release 编译,运行时性能接近 C
  • 完整支持 8 模块、--all-modes 对比模式

测试套件 (test_flops.py)

40+ 测试覆盖:

  • C:单核、2/4/all 核、--all-modes--json、加速比分析
  • Go:单核、2/4 核、--all-modes--json
  • Python:serial / mp(2,4) / thread(4) / numpy
  • Rust:有 cargo 时自动编译测试
  • 交叉验证:C vs Python vs Go 全部 8 模块数值一致性(全通过)
  • 加速比效率分析:单核 vs 多核,算并行效率百分比

8. 在你的电脑上跑一次

git clone https://github.com/Kivy-CN/flops.git
cd flops
make          # 编译 C + Go,运行完整测试
make compare  # 单核 vs 多核对比
make test# 40+ 测试的完整套件

或者手动编译各语言版本:

# 编译 C 版本
gcc -std=c11 -O2 -pthread -lm flops.c -o flops

# 单线程基准
./flops -j 1

# 全核并行
./flops -j $(nproc)

# 对比模式 — 看加速比
./flops --all-modes -j $(nproc)

# JSON 输出(方便脚本解析)
./flops --json -j 4

# Go 版本
go build -o flops_go flops.go && ./flops_go -j $(nproc)

# Python 对比所有模式
python3 flops.py --all-modes -j 4

# Rust 版本
cd flops_rs && cargo build --release && ./target/release/flops -j $(nproc)

# 一键构建 + 测试
make && make test

9. 一些有趣的观察

"1992 年的超算不如你的手机"

1992 年世界最快的超级计算机是 Cray Y-MP C90,标称峰值大约 16 GFLOPS [^1]。上面那颗 16 核笔记本处理器的理论峰值约 1,382 GFLOPS——是它的 86 倍。有的手机的CPU的FLOPS峰值可能也超过了 1 TFLOPS。

多线程 scaling 不是线性的

10 核加速 7.19 倍——为什么不是 10 倍?因为:

  1. 模块 2 有循环依赖(s = -s; sa = sa + s),只能串行——这就是阿姆达尔定律
  2. 线程创建/销毁、上下文切换有开销
  3. 所有核心共享同一块 L3 缓存和内存带宽
  4. 散热和功耗管理可能导致部分核心降频(特别是移动平台)

除法算得慢

模块 7(25% FDIV)在所有模块里 MFLOPS 最低——因为一次浮点除法比乘法多花好几倍时间。这也是为什么编译器优化里有一条铁律:能改写成乘以倒数,就绝不做除法


10. 局限性

flops.c 是一个微观基准(micro-benchmark),它有意识地排除了:

  • 内存带宽:所有数据都在寄存器里,完全适配 L1 缓存
  • SIMD 指令:没有用 SSE/AVX/NEON,纯标量运算
  • 真实世界的复杂性:没有 IO、网络、系统调用、多进程通信

所以它的 MFLOPS 数字会比真实应用程序高不少。但它仍然有价值:

  • 测量 CPU 的纯算术上限——其他任何程序都不会超过这个数字
  • 快速评判编译器质量——不同优化选项(-O0/-O2/-O3/-march=native)的性能差异一目了然
  • 对比语言运行时效率——同样的算法,Python 为什么这么慢,Go 和 Rust 又各有啥特点
  • 教学价值——展示浮点运算、流水线、指令混合、并行效率这些概念

如果想测更真实的性能,应该搭配 LINPACK(内存+计算混合)、STREAM(纯内存带宽)和 SPEC CPU(完整应用场景)一起用。


附:一点混乱的编年史

年代
里程碑
FLOPS
1945
ENIAC(电子管)
~500 FLOPS [^5]
1976
Cray-1(向量超算)
~160 MFLOPS [^6]
1992
Al Aburto 发布 flops.c V2.0;Cray Y-MP C90 服役
~16 GFLOPS [^1]
1997
Intel Pentium II
~300 MFLOPS
2008
IBM Roadrunner 超算
突破 1 PFLOPS(10¹⁵)[^7]
2014
Brian Olson 将 flops 项目上传至 GitHub
2021
CycleUser 完成 flops 的 Python 3 适配
2022
AMD 发布 Zen 4;Frontier 超算突破 1 EFLOPS(10¹⁸)[^8]
2023
AMD Zen 4 Dragon Range 移动处理器,16 核,支持 AVX-512
~1.38 TFLOPS
2025
flops.c V3.0——C/Go/Python/Rust 四语言现代化,多线程/多进程/向量化

从 500 FLOPS 到 1,000,000,000,000,000,000 FLOPS,用了 80 年。你口袋里手机的计算能力,可能都远远超过了 1992 年整个星球上最快的超级计算机。

而 flops.c,这个跨越了 33 年的小程序,至今仍然能编译、运行,准确告诉你——这台机器算数学到底有多快。项目地址:github.com/Kivy-CN/flops


参考出处

[^1]: Cray Y-MP C90 峰值约 16 GFLOPS —— C916 配置(16 处理器),来源:Fred Gannett's Cray FAQ Part 5;Wikipedia "Cray C90"。

[^2]: 现代处理器上浮点除法比乘法慢约 3–10 倍 —— 参考 Agner Fog, "Instruction tables: Lists of instruction latencies, throughputs and micro-operation breakdowns for x86 and ARM microprocessors," https://agner.org/optimize/。例如 Zen 4 架构中 FMUL 延迟约 4–5 周期,FDIV 延迟约 11–20 周期(单精度到双精度)。

[^3]: 内存访问延迟约 100–200 倍于寄存器 —— 参考 Hennessy & Patterson, "Computer Architecture: A Quantitative Approach," 6th ed., 2017, Table 2.3:L1 寄存器 ~0.25ns,DRAM ~50–100ns。

[^4]: Al Aburto, flops.c V2.0, 1992. 原始代码头注释标注作者邮箱 aburto@nosc.mil(NOSC = Naval Ocean Systems Center)。Brian Olson 的 GitHub 仓库保留了原始代码:https://github.com/brianolson/flops 。

[^5]: ENIAC 约 500 FLOPS —— Wikipedia "ENIAC":"ENIAC was able to process about 500 FLOPS." 来源引用自 Wikipedia ENIAC 词条注 36。

[^6]: Cray-1 峰值 160 MFLOPS —— Wikipedia "Cray-1" infobox;Russell, R.M. (1978). "The CRAY-1 Computer System." Commun. ACM 21(1): 63–72. doi:10.1145/359327.359336。

[^7]: IBM Roadrunner 于 2008 年 5 月 25 日突破 1 PFLOPS —— Wikipedia "Roadrunner (supercomputer)";Barker et al. (2008), "Entering the petaflop era: The architecture and performance of Roadrunner," SC08。

[^8]: Frontier 超算于 2022 年 5 月突破 1 EFLOPS —— Wikipedia "Frontier (supercomputer)";ORNL 新闻稿 "Frontier supercomputer debuts as world's fastest, breaking exascale barrier," May 30, 2022。

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