当前位置:首页>python>Python 3.10 到 3.14:你不升级,GIL 也要替你升了

Python 3.10 到 3.14:你不升级,GIL 也要替你升了

  • 2026-06-26 15:25:24
Python 3.10 到 3.14:你不升级,GIL 也要替你升了

为什么 LangChain、PyTorch 都盯着 3.10?

如果你最近折腾过 AI 相关的东西——LangChain、PyMuPDF、甚至 PyTorch 的新版本——大概率见过这行字:

Requires Python >= 3.10

是不是一脸懵?

我的 3.8 不香了吗?我的 3.9 怎么就不配了?

答案很简单:Python 从 3.10 开始,才真正变"现代"了。

3.10 之前的 Python,虽然能跑,但类型系统弱、错误提示烂、语法啰嗦。对于动辄几万行代码的 AI 框架来说,这些都是实打实的工程痛点。

从 3.10 到 3.14,Python 用了四年时间,把自己从一辆二手桑塔纳,改装成了一辆特斯拉。

引擎换了(Faster CPython、JIT、Free-threaded),底盘换了(类型系统大改),内饰也换了(REPL、f-string、模板字符串)。

今天咱们就一个版本一个版本地掰开聊,看看这条升级链上,每一环到底干了啥。


3.10:语法与类型友好元年

发布日期:2021 年 10 月 4 日

match/case——Python 终于有 switch 了

写 JavaScript 的学友都知道 switch。写 TypeScript 的更知道 discriminated union 那套玩法——根据 type 字段做模式匹配。

Python 在 3.10 之前?if/elif/elif/elif/else,写到你手指抽筋。

3.10 引入了 match/case,这不是简单的 switch/case 翻版——它是结构化模式匹配。支持解构、守卫条件、类型匹配,比 JS 的 switch 强了不止一个档次。

match command:case {"action""buy""item"str(name), "quantity"int(qty)}:        process_purchase(name, qty)case {"action""refund""item"str(name)}:        process_refund(name)case _:raise ValueError("未知指令")

看到没?直接解构字典,连类型检查都带上了。写过 Rust 或 Elixir 的学友会觉得特别亲切。

X | Y 联合类型——跟 TypeScript 一个味

以前写联合类型:Union[int, str],得从 typing 模块导入 Union

3.10 开始,直接写 int | str

# Before 3.10from typing import Uniondef greet(name: Union[strNone]) -> str: ...# After 3.10def greet(name: str | None) -> str: ...

TypeScript 开发者看到这个,应该会心一笑:这不就是我们的 string | null 吗?

错误提示——终于不说"人话"了

3.10 之前 Python 的错误提示,堪比"你有错,但我不告诉你哪错了"。

到了 3.10,解释器终于学会精确报错了。少个括号?它会告诉你哪里少了。拼错了变量名?它还会猜你是不是想写那个。

这对新手来说是救命的改动。

对老司机来说嘛——你别说,有时候凌晨两点 debug,能少看 10 秒报错就是赚了。

3.10 的意义

Python 在这个版本第一次让人觉得:写起来舒服了。

不是"能跑就行"的那种能用,而是"写类型不膈应、匹配模式有手感".这是 Python 正式向现代语言看齐的起点。


3.11:性能 + 异常处理升级

发布日期:2022 年 10 月 24 日

Faster CPython——快了 25%

这是官方数据,不是我编的:

CPython 3.11 is an average of 25% faster than CPython 3.10 as measured with the pyperformance benchmark suite, when compiled with GCC on Ubuntu Linux. Depending on your workload, the overall speedup could be 10-60%.

25% 是什么概念?你的训练脚本原来跑 10 分钟,升级 3.11 可能变成 7.5 分钟。什么都不用改,换个解释器就行。

不过话说回来,Python 还是比 C 慢几十上百倍——别指望它追上 Rust。但在 Python 自己的赛道里,25% 已经非常恐怖了。这是 Faster CPython 项目(由微软赞助、Guido 亲自参与)交出的第一份答卷。

ExceptionGroup + except*——一次接住一把异常

以前一个 try/except 只能捕获一个异常。但 async 场景下,多个协程可能同时炸——怎么办?

3.11 引入了 ExceptionGroup,以及配套的 except* 语法:

try:async with asyncio.TaskGroup() as tg:        tg.create_task(might_fail_1())        tg.create_task(might_fail_2())except* ValueError as eg:for e in eg.exceptions:print(f"捕获到 ValueError: {e}")except* TypeError as eg:for e in eg.exceptions:print(f"捕获到 TypeError: {e}")

如果你写前端,可以类比 Promise.allSettled() ——区别是 Python 现在在语言层面支持一次处理多个异常了,不用自己拿数组接。

精准错误定位——traceback 指哪打哪

3.11 做了一个小但美的事:traceback 精确到表达式级别

以前报错,告诉你"第 42 行有问题"。

现在报错,用波浪线指出这一行里哪个表达式出了问题

Traceback (most recent call last):  File "example.py", line 1    x['a']['b']['c']['d'] = 1    ~~~~~~~~~~~^^^^^TypeError: 'NoneType' object is not subscriptable

这个改动在调试长链式调用(.a.b.c.d)时非常救命。

原生 tomllib——读 TOML 不求人

TOML(Tom's Obvious, Minimal Language)是现代 Python 项目的标准配置格式。现在 pyproject.toml 已经基本取代了 setup.py

但在 3.11 之前,标准库不支持读 TOML。你得装第三方库 tomli

3.11 把它收编了,改名 tomllib,正式进了标准库。

import tomllibwith open("pyproject.toml""rb"as f:    config = tomllib.load(f)

注意:tomllib 只支持读,不支持写。写 TOML 依然需要第三方库(比如 tomli-w)。

3.11 的意义

异常处理现代化了,性能也开始认真卷了。Python 不再只是"好写"的语言,它开始"跑得也不算太丢人"了。


3.12:类型语法革命 + f-string 解放

发布日期:2023 年 10 月 2 日

PEP 695——泛型终于能好好写了

3.12 之前写泛型:

from typing import TypeVar, GenericT = TypeVar("T")class Stack(Generic[T]):def push(self, item: T) -> None: ...

三行代码才能声明一个类型变量,而且那个 TypeVar("T") 重复写名字,强迫症看了想打人。

3.12 直接给你简化成:

class Stack[T]:def push(self, item: T) -> None: ...

TypeScript 开发者应该很眼熟吧?class Stack<T> 嘛。Python 终于追上来了。

同样的,类型别名也简化了:

# Beforefrom typing import TypeAliasVector: TypeAlias = list[float]# After 3.12type Vector = list[float]

f-string 大解放

3.12 之前的 f-string 有一堆诡异限制:

  • 不能嵌套引号(同种引号不能重复用)
  • 不能写反斜杠 \
  • 不能写注释 #
  • 不能换行

3.12把 f-string 的解析器重写了,上面这些限制全部取消

# 3.12 之前这么写会报错f"{'hello'}"# 内外都用单引号?不行!# 3.12 开始可以了f"{'hello'}"# 没问题f"""result = {    some_function(        arg1,  # 注释也能写了        arg2    )}"""

这对写复杂的 SQL 拼接、日志模板、前端模板渲染的学友来说,简直解放双手。

@override 装饰器

引入了 typing.override 装饰器。你在子类重写父类方法时加上它,如果父类根本没那个方法,类型检查器会报错。

这和 TypeScript/Java 的 @override / override 关键字一个意思——防你手滑重写了个不存在的方法。

distutils 彻底删除

distutils 这个古老的打包模块,终于在 3.12 被正式移除了。

如果你还有代码 import distutils,赶紧改用 setuptools 或者直接投奔 pyproject.toml + build 工具链。

这对大部分现代项目影响不大,但有些老项目的 setup.py 可能会炸。迁移文档建议看 setuptools 官方迁移指南。

3.12 的意义

写类型和字符串拼接的体验大幅提升。如果你之前嫌 Python 的类型注解啰嗦,3.12 足以改变你的看法。


3.13:无 GIL 实验 + 全新 REPL

发布日期:2024 年 10 月 7 日

Free-threaded CPython——GIL 动摇了

GIL(Global Interpreter Lock,全局解释器锁),Python 最大的历史包袱。它让 Python 的多线程基本是"假的"——同一时刻只有一个线程在跑 Python 字节码。

3.13 首次提供了实验性的 Free-threaded 构建。你可以编译或下载一个不带 GIL 的 CPython,让多个线程真正并行执行 Python 代码。

⚠️ 但是:这是实验性的。官方明确说了,不适合生产环境。很多 C 扩展库还没适配无 GIL 模式,贸然使用可能出各种奇怪的 bug。

不过方向已经定了——GIL 的终结只是时间问题。

全新交互式 REPL

Python 的老 REPL(就是你在终端敲 python 出来的那个 >>> 界面)终于被翻新了。

新 REPL 基于 PyPy 的 _pyrepl,支持:

  • 多行编辑(以前写了一半改上一行?对不起重来)
  • 颜色语法高亮
  • 更好的历史记录浏览

虽然不能跟 IPython / Jupyter 比功能量,但作为开箱即用的体验,质的飞跃。

实验性 JIT 编译器

3.13 还悄悄加了一个实验性的 JIT(Just-In-Time)编译器。它基于一种叫"copy-and-patch"的技术,是 Faster CPython 项目的延续。

目前这个 JIT 不会让大部分代码变快,但它是未来性能优化的基础设施。官方的态度很明确:先把架子搭好,后面再调性能。

19 个老模块大清理

2019 年提出的"dead batteries"清理计划,在 3.13 正式执行:19 个标准库模块被移除。

包括 aifcaudioopcgicgitbchunkimghdrmailcapmsilibnisnntplibossaudiodevpipessndhdrspwdsunautelnetlibuuxdrlib 以及 crypt

这些模块大多是上世纪 90 年代的遗产,比如 telnetlib(谁还在用 telnet?),nis(谁还在用 NIS?)。

如果你的项目还在用它们,PyPI 上有对应的重新分发包(如 standard-cgiaudioop-lts 等),可以作为临时替代方案。

3.13 的意义

Python 开始认真解决两个根本性问题:多核并行日常开发体验。Free-threaded 是未来的方向,新 REPL 则是活在当下的改进。


3.14:模板字符串 + 延迟注解 + 多解释器

发布日期:2025 年 10 月 7 日

t-string——Python 的 Tagged Template

JavaScript 有 tagged template literals:

html`<h1>${title}</h1>`

Python 3.14 引入了类似的东西——模板字符串(template string),用 t"..." 前缀标记:

name = "World"template = t"Hello, {name}!"# template 不是 str,而是 Template 对象# 你可以在处理函数中拿到原始片段和插值部分

跟 f-string 不同,t-string 不会立即拼接成字符串。它返回一个 Template 对象,你可以拿到原始字面量片段和插值表达式的值,然后自己决定怎么处理。

这对安全拼接 SQL、HTML、日志等场景非常有用——从语言层面防止注入

注解延迟求值

Python 的类型注解长期以来有一个尴尬:它在定义时就求值。

这导致两个问题:

  1. 前向引用:类 A 引用了类 B,但 B 还没定义——就得写成字符串 "B"
  2. 启动性能:大量注解会拖慢模块加载

3.14 让注解变成延迟求值——只有在你真正需要它(比如通过 typing.get_type_hints() 或 annotationlib.get_annotations() 获取)的时候,才会计算。

结果就是:前向引用问题基本解决了,模块加载也变快了。

concurrent.interpreters——标准库原生多解释器

3.12 在 C API 层面引入了 per-interpreter GIL,3.14 把这个能力暴露给了 Python 层。

新增的 concurrent.interpreters 模块允许你创建多个子解释器,每个子解释器有自己独立的 GIL,可以真正并行执行。

import concurrent.interpreters as interpretersinterp = interpreters.create()interp.exec("print('Hello from sub-interpreter!')")

如果说 Free-threaded 是"拆掉 GIL"这条路,那多解释器就是"每人一把锁,互不干扰"这条路。两条路最终可能殊途同归,但策略不同。

其他改进

  • 增量 GC(Incremental Garbage Collection):垃圾回收不再一次性暂停全部,减少延迟抖动
  • 错误提示继续优化:每个版本都在改善,这次也不例外
  • REPL 语法高亮:交互式解释器的颜色支持进一步增强
  • Free-threaded 模式进一步成熟:3.14 中 free-threaded 构建得到显著加强,生态兼容性提升(目前仍为实验性支持)

3.15 会有什么?

截至本文写作时(2026 年 4 月),Python 3.15 仍在 feature 阶段(主开发分支),计划于 2026 年 10 月发布。Release Manager 是 Hugo van Kemenade。

具体会包含哪些特性,目前仍在 PEP 讨论和 alpha 迭代中。已确认的部分特性包括 PEP 810(显式惰性导入)、PEP 814(frozendict)、PEP 799(新 profiling 包)等,更多特性仍在 alpha 阶段可能调整。

可以持续关注的方向:

  • Free-threaded 模式的成熟度和生态适配进展
  • JIT 编译器的实际性能收益
  • 类型系统的进一步完善

各版本 EOL 时间表

版本
首次发布
维护状态
生命周期结束(EOL)
3.10
2021-10-04
仅安全修复
2026 年 10 月
3.11
2022-10-24
仅安全修复
2027 年 10 月
3.12
2023-10-02
Bug 修复
2028 年 10 月
3.13
2024-10-07
Bug 修复
2029 年 10 月
3.14
2025-10-07
Bug 修复
2030 年 10 月
3.15
计划 2026-10
Feature 阶段
计划 2031 年 10 月

注意:3.10 的 EOL 是 2026 年 10 月——也就是说,如果你现在读到这篇文章,3.10 可能已经接近或进入 EOL 了。如果你的生产环境还在跑 3.10,是时候认真规划升级了。

3.9 已经于 2025 年 10 月 31 日终止支持。更老的 3.8 在 2024 年 10 月 7 日就已经 EOL。


尾声:一条蛇的自我革命

回头看这五个版本,你会发现一条清晰的主线:

Python 正在把自己从"好用的脚本语言"升级成"好用的工程语言"。

类型系统在向 TypeScript 学习。

并行能力在向 Go/Erlang 看齐。

模板字符串在向 JavaScript 致敬。

性能优化在向 JIT 语言(Java/C#)的方向努力。

它没有推翻自己的设计哲学("There should be one-- and preferably only one --obvious way to do it"),而是在这个哲学内部做最大化的现代化改造。

但话说回来,语言的升级永远比项目的升级快。你的语言是 3.14 了,你的 requirements.txt 可能还在用三年前的依赖版本。你的类型注解写得再漂亮,CI 里可能根本没跑 mypy。

升级语言很容易,升级工程实践才是真正的硬仗。

我是幽皇,今天就到这里。我们下篇见。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-04 00:12:47 HTTP/2.0 GET : https://f.mffb.com.cn/a/489380.html
  2. 运行时间 : 0.102848s [ 吞吐率:9.72req/s ] 内存消耗:4,719.62kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=e98c8ca20800d9c794406dee8de0d10a
  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.000439s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000776s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000348s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000279s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000478s ]
  6. SELECT * FROM `set` [ RunTime:0.000196s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000594s ]
  8. SELECT * FROM `article` WHERE `id` = 489380 LIMIT 1 [ RunTime:0.000706s ]
  9. UPDATE `article` SET `lasttime` = 1783095167 WHERE `id` = 489380 [ RunTime:0.005635s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000231s ]
  11. SELECT * FROM `article` WHERE `id` < 489380 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000505s ]
  12. SELECT * FROM `article` WHERE `id` > 489380 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000368s ]
  13. SELECT * FROM `article` WHERE `id` < 489380 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001962s ]
  14. SELECT * FROM `article` WHERE `id` < 489380 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.009570s ]
  15. SELECT * FROM `article` WHERE `id` < 489380 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.008801s ]
0.104485s