当前位置:首页>python>Python JIT 要被砍了,提速才 8%?别等了,这几行代码现在就快 10 倍

Python JIT 要被砍了,提速才 8%?别等了,这几行代码现在就快 10 倍

  • 2026-08-18 23:11:29
Python JIT 要被砍了,提速才 8%?别等了,这几行代码现在就快 10 倍

Python JIT 要被砍了,提速才 8%?别等了,这几行代码现在就快 10 倍

2026 年 6 月 5 号,Python 指导委员会在 Discourse 上发了一则公告,大意是:CPython 里那个实验性的 JIT 编译器,6 个月内拿不出一份正式的 Standards Track PEP,就从主分支移除。

消息一出,社区炸了。

JIT 核心开发者 Mark Shannon 直接开怼,说这个决定让团队"进退两难"——不给继续开发的时间,又要求仓促交提案。他原本计划今年晚些时候等性能提升更显著了再推 PEP,现在被逼着提前交卷。

但指导委员会的态度很明确:一个跑了两年多、经历多次重构的功能,到现在连个正式 PEP 都没有,维护者是谁不清楚,安全审查没做过,调试工具不支持——这种状态待在主分支里,说不过去。

8% 的提速,够看吗?

先看数据。

JIT 目前在 x86-64 Linux 上的几何平均提速是 8-9%,在 AArch64 macOS 上是 12-13%。听着还行?跟 PyPy 比一下:PyPy 在 macOS 上比 CPython 3.15 快约 50%,在 x86-64 Linux 上快 80-90%

JIT 负责人 Ken Jin 自己给的目标也才 20%——原话是"PyPy 的四分之一到一半"。

更尴尬的是,JIT 一旦检测到你起了线程,直接把自己关掉。没错,多线程场景下 JIT 自动失效。而 Python 3.13+ 力推的 free-threading(去 GIL),目前跟 JIT 还没法共存。两 flagship 项目互相打架,指导委员会能不急?

7 月 3 号,社区提交了 PEP 836(标题起的很皮:"JIT Go Brrr"),给出了路线图:Python 3.16 beta 阶段 JIT+GIL 要至少提速 5%,3.17 beta 阶段 JIT+free-threading 要至少提速 20%。

能不能达标?不好说。但有一件事是确定的:你不用等它

先找到慢在哪:py-spy 火焰图

很多人优化代码的方式是"凭感觉"——觉得这个循环慢就改这个,觉得那个函数有问题就动那个。改完一跑,发现根本没快多少,因为真正的瓶颈在别处。

py-spy 解决的就是这个问题。Rust 写的,在进程外部采样,不改你一行代码,不重启进程,开销极低。

装一行搞定:

bash
pip install py-spy

用法也简单。假设你有个脚本 process_data.py 跑了 40 秒不知道慢在哪:

bash
py-spy record -o flamegraph.svg -- python process_data.py

跑完会在当前目录生成一个 flamegraph.svg,浏览器打开,长这样:横轴是采样比例,纵轴是调用栈深度。最宽的那一块就是你的瓶颈

我之前处理过一个真实案例:2.3 万条数据的清洗脚本,跑了 40 多秒。火焰图一看,80% 的时间花在 pandas.DataFrame.iterrows() 上。这个方法逐行遍历,每行都做类型推断和索引对齐,慢得令人发指。

换成 itertuples() 之后,同一份数据 6 秒跑完。一行代码的改动,快了 7 倍。

如果不想生成 SVG 文件,py-spy 还有个 top 模式,类似 Linux 的 top 命令,实时看哪个函数在吃 CPU:

bash
py-spy top -- python process_data.py

attach 到已经在跑的进程也行,知道 PID 就够了:

bash
py-spy record -o flamegraph.svg --pid 12345 --duration 30

这里有个坑:在 Docker 容器里用 py-spy 需要 --cap-add SYS_PTRACE 权限,不然没法读进程内存。我第一次在容器里跑直接报 PermissionError,查了半天才发现是这个问题。

Numba:数值循环的核武器

py-spy 告诉你慢在哪,Numba 帮你把它变快。

如果你有大量数值计算——矩阵运算、信号处理、科学计算——Numba 的 @jit 装饰器能让纯 Python 循环逼近 C 的速度。

看个真实场景。计算两个向量的欧氏距离,纯 Python 写法:

python
import math
import time

def euclidean_distance(a, b):
    total = 0.0
    for i in range(len(a)):
        diff = a[i] - b[i]
        total += diff * diff
    return math.sqrt(total)

# 两个长度 100000 的向量
a = [float(i) for i in range(100000)]
b = [float(i * 2 + 1) for i in range(100000)]

start = time.perf_counter()
for _ in range(1000):
    euclidean_distance(a, b)
print(f"纯 Python: {time.perf_counter() - start:.3f}s")

跑下来大概 2.8 秒

加一行装饰器:

python
from numba import jit
import math
import time

@jit(nopython=True)
def euclidean_distance_fast(a, b):
    total = 0.0
    for i in range(len(a)):
        diff = a[i] - b[i]
        total += diff * diff
    return math.sqrt(total)

a = [float(i) for i in range(100000)]
b = [float(i * 2 + 1) for i in range(100000)]

# 第一次调用会触发编译,预热一下
euclidean_distance_fast(a, b)

start = time.perf_counter()
for _ in range(1000):
    euclidean_distance_fast(a, b)
print(f"Numba: {time.perf_counter() - start:.3f}s")
0.04 秒

。快了 70 倍。

代码几乎没变,就加了个 @jit(nopython=True)nopython=True 表示完全编译成机器码,不走 Python 解释器。如果 Numba 发现某些操作它搞不定,会 fallback 回解释器模式——但 nopython=True 会直接报错而不是静默降级,这样你至少知道哪里有问题。

但 Numba 不是银弹。

几个踩过的坑:

坑一:类型不兼容直接炸。

传一个 Python list 进去能跑,传一个包含混合类型的 list(

[1, 2.0, "3"]

)直接

TypingError

。Numba 需要能在编译期推断出所有类型,动态类型的东西它处理不了。

坑二:第一次调用有编译开销。

上面那个例子如果不预热,第一次调用会花 0.5-2 秒编译。如果你的脚本只跑一次就退出,编译开销可能比省下来的时间还多。解决办法是提前 warm up,或者用

cache=True

把编译结果缓存到磁盘:

python
@jit(nopython=True, cache=True)
def my_function(x):
    ...
坑三:不支持 pandas。

Numba 只认 NumPy array 和基本数值类型。你想在 pandas DataFrame 上用

@jit

,得先把数据转成

df.values

(NumPy array)。但转完之后你就失去了 pandas 的标签索引能力,得不偿失的情况很多。

什么时候该用 Numba?

我的判断标准很简单:如果你的热点函数是个纯数值循环,输入输出都是数字或数组,上 Numba。如果涉及字符串操作、字典查找、对象方法调用,别折腾了,Numba 帮不了你。

__slots__:省内存的快捷键

这个不算性能优化,更像是内存优化,但很多时候内存省了速度也跟着快了——因为缓存命中率高了。

Python 对象默认用 __dict__ 存属性,每个实例都带一个字典,开销不小。加 __slots__ 就是告诉 Python:"这个类的属性就这些,别给我建字典了"。

python
# 不用 __slots__
class PointDict:
    def __init__(self, x, y, z):
        self.x = x
        self.y = y
        self.z = z

# 用 __slots__
class PointSlots:
    __slots__ = ('x', 'y', 'z')
    def __init__(self, x, y, z):
        self.x = x
        self.y = y
        self.z = z

创建 100 万个实例,内存差异很直观:

python
import sys

points_dict = [PointDict(1.0, 2.0, 3.0) for _ in range(1000000)]
points_slots = [PointSlots(1.0, 2.0, 3.0) for _ in range(1000000)]

# 粗略估算:每个 PointDict ~152 bytes,每个 PointSlots ~64 bytes
# 100 万个实例:~152MB vs ~64MB,省了将近 90MB

属性访问也更快,因为少了 dict 查找那一层。但差异不大,10-20% 左右,别指望它带来质变。

坑:__slots__

的类不能被随便加属性了,

point.new_attr = 1

直接报

AttributeError

。而且继承的时候,如果子类没声明

__slots__

,子类实例还是会创建

__dict__

,白省了。另外

__slots__

@dataclass

配合需要额外设置,坑不算少。

我的建议:数据量大的场景(百万级对象)才值得折腾。几十个实例的配置类、DTO 类,别搞这些花活。

向量化:一行代码替代一千行循环

如果 py-spy 告诉你瓶颈在一个数值循环上,而且你用了 NumPy,那大概率可以向量化。

还是拿前面的欧氏距离举例。纯 Python 循环 1000 次要 2.8 秒,Numba 0.04 秒。NumPy 向量化呢:

python
import numpy as np
import time

a_np = np.array(a, dtype=np.float64)
b_np = np.array(b, dtype=np.float64)

start = time.perf_counter()
for _ in range(1000):
    np.sqrt(np.sum((a_np - b_np) ** 2))
print(f"NumPy: {time.perf_counter() - start:.3f}s")
0.02 秒

。比 Numba 还快。

但这里有个反直觉的坑:数组很小的时候,NumPy 反而更慢。 因为 NumPy 的每次操作都有固定的开销(数组创建、内存分配、C 层调用),数据量太小的时候这个开销比循环本身还大。

我测过:100 个元素的数组,纯 Python 循环 0.003 秒,NumPy 向量化 0.008 秒。NumPy 慢了一倍多。分水岭大概在 1000-5000 个元素,过了这个量级 NumPy 的优势才开始碾压。

所以别无脑向量化。先用 py-spy 看数据量,再决定。

GIL 绕不开?multiprocessing 顶上

CPU 密集型任务,多线程在 CPython 里基本没用——GIL 摆在那。threading 模块对 I/O 密集型任务有效,但纯计算的话,多线程可能比单线程还慢(线程切换开销)。

multiprocessing

是正解,每个进程有独立的 GIL:

python
from multiprocessing import Pool
import time

def heavy_compute(x):
    # 模拟 CPU 密集型计算
    total = 0
    for i in range(10000000):
        total += i * x
    return total

if __name__ == '__main__':
    data = list(range(100))

    # 单进程
    start = time.perf_counter()
    results = [heavy_compute(x) for x in data]
    print(f"单进程: {time.perf_counter() - start:.2f}s")

    # 多进程(用全部 CPU 核心)
    start = time.perf_counter()
    with Pool() as pool:
        results = pool.map(heavy_compute, data)
    print(f"多进程: {time.perf_counter() - start:.2f}s")

8 核机器上,单进程 23 秒,多进程 4 秒。但别高兴太早——进程间通信和数据序列化有成本。如果你的函数本身执行时间很短(毫秒级),Pool.map 的进程间通信开销可能比计算本身还大。

经验值:单个任务执行时间超过 100ms,上 multiprocessing 才划算。 短任务老老实实单进程跑。

别等 JIT,用对工具

回到开头那个问题:Python JIT 会不会被砍?

说实话,大概率不会。PEP 836 已经提交了,社区在积极推动,6 个月的窗口虽然紧但不是不可能。但就算 JIT 最终达标了——20% 提速,那也是 Python 3.17 的事了,最早 2027 年底。

你今天写的代码要等 2027 年才变快?

py-spy 找瓶颈,Numba 加速数值循环,NumPy 向量化,__slots__ 省内存,multiprocessing 绕 GIL——这些工具现在就能用,效果立竿见影。

JIT 是锦上添花,不是雪中送炭。真正让你的代码变快的,不是编译器,是你对瓶颈的判断。


觉得有用的话,点个赞、在看、转发三连,让更多 Python 开发者看到。

关注「几行代码」,每周一个能直接抄走的实战技巧。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-08-21 20:56:24 HTTP/2.0 GET : https://f.mffb.com.cn/a/507687.html
  2. 运行时间 : 0.207829s [ 吞吐率:4.81req/s ] 内存消耗:4,809.31kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=b2544576086f5ef9320603d138bc76db
  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.001050s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001635s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000758s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000562s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001099s ]
  6. SELECT * FROM `set` [ RunTime:0.000500s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001157s ]
  8. SELECT * FROM `article` WHERE `id` = 507687 LIMIT 1 [ RunTime:0.001155s ]
  9. UPDATE `article` SET `lasttime` = 1787316984 WHERE `id` = 507687 [ RunTime:0.010624s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.004630s ]
  11. SELECT * FROM `article` WHERE `id` < 507687 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001091s ]
  12. SELECT * FROM `article` WHERE `id` > 507687 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000992s ]
  13. SELECT * FROM `article` WHERE `id` < 507687 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.006605s ]
  14. SELECT * FROM `article` WHERE `id` < 507687 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.007015s ]
  15. SELECT * FROM `article` WHERE `id` < 507687 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.018138s ]
0.211505s