当前位置:首页>python>深度学习 Python 配置方法对比(Config/argparse/simple-parsing/Pydantic/OmegaConf)

深度学习 Python 配置方法对比(Config/argparse/simple-parsing/Pydantic/OmegaConf)

  • 2026-06-30 15:20:05
深度学习 Python 配置方法对比(Config/argparse/simple-parsing/Pydantic/OmegaConf)

进 Q 学术交流群:922230617 或加 CV_EDPJ 进 W 交流群


目录

0. 前言

1. 版本 1:最原始写法——Config 写死

1.1 完整代码

1.2 修改方式

1.3 优缺点

1.4 适用场景

2. 版本 2:常用标准——原生 argparse

2.1 完整代码

2.2 命令行修改

2.3 优缺点

2.4 重点补充:原生 bool 致命 BUG

2.5 适用场景

3. 版本 3:精简 argparse——simple-parsing

3.1 完整代码

3.2 命令行修改

3.3 优缺点

3.4 适用场景

4. 版本 4:严格类型校验——Pydantic

4.1 完整代码

4.2 命令行修改

4.3 优缺点

4.4 类型校验实战演示(核心对比)

4.5 适用场景

5. 版本 5:无 yaml 纯代码——OmegaConf 字典版

5.1 完整代码

5.2 命令行修改

5.3 优缺点

5.4 适用场景

6. 版本 6:有 yaml 文件——OmegaConf 多 yaml 合并版

6.1 文件结构

6.2 基础配置 base.yaml

6.3 覆盖配置 bottle.yaml

6.4 主代码 train.py

6.5 运行方式(三种覆盖优先级 + 合并最终结果)

6.6 优缺点

6.7 适用场景

7. 六种写法横向对比

8. 选择建议

9. 总结


0. 前言

在深度学习、AI科研、Python工程项目中,参数配置管理是每一个开发者必须掌握的基础能力。

很多初学者疑惑:

  • 为什么别人代码全是 argparse?

  • 为什么现在很多开源项目使用 YAML?

  • simple-parsing、Pydantic、OmegaConf 到底区别在哪?

本文使用最简单、最直白、循序渐进的方式,整理目前业内 6 种主流配置写法

全部使用统一参数模板(覆盖常用类型):

  • int:epoch

  • float:learning_rate

  • str:dataset

  • bool:data_aug(数据增强开关)

  • int list:image_size

  • str list:categories

每种写法包含:完整代码 + 命令行修改方式 + 优缺点 + 适用场景

1. 版本 1:最原始写法——Config 写死

1.1 完整代码

def train(cfg):    print(cfg)if __name__ == '__main__':    # 纯字典配置    config = {        "epoch"10,                     # int        "learning_rate"5e-4,           # float        "dataset""mvtec",              # str        "data_aug"True,                # bool        "image_size": [2245121024],  # int list        "categories": ["bottle""cable""capsule"# str list    }    train(config)

1.2 修改方式

必须打开 py 文件,手动修改数值。

1.3 优缺点

✅ 最简单、无任何学习成本

❌ 不能命令行修改、不能批量实验、代码污染、不规范

1.4 适用场景

个人临时测试、小脚本、不需要反复调参。

2. 版本 2:通用标准——原生 argparse

2.1 完整代码

import argparsedef train(args):    print(args)if __name__ == '__main__':    parser = argparse.ArgumentParser()    parser.add_argument("--epoch"type=int, default=10)    parser.add_argument("--learning_rate"type=float, default=5e-4)    parser.add_argument("--dataset"type=str, default="mvtec")    parser.add_argument("--data_aug"type=bool, default=True)    parser.add_argument("--image_size"type=int, nargs='+', default=[2245121024])    parser.add_argument("--categories"type=str, nargs='+', default=["bottle""cable""capsule"])    args = parser.parse_args()    train(args)

2.2 命令行修改

python train.py --epoch 20 --learning_rate 1e-4 \--image_size 256 512 --categories bottle capsule

2.3 优缺点

✅ 官方自带、无需安装包、支持命令行、开源通用

❌ 代码冗余、重复啰嗦、list 需要 nargs='+'、原生 bool 存在致命 BUG

2.4 重点补充:原生 bool 致命 BUG

argparse 中直接使用 type=bool 是错误写法!

命令行传入 --data_aug False 永远为 True,因为命令行传参默认字符串,非空字符串全部被 bool 判定为 True。

正确写法:必须手动定义 str2bool 转换函数

def str2bool(v):    if isinstance(v, bool):        return v    if v.lower() in ('yes''true''t''y''1'):        return True    elif v.lower() in ('no''false''f''n''0'):        return False    else:        raise argparse.ArgumentTypeError('Boolean value expected.')# 使用方式parser.add_argument("--data_aug"type=str2bool, default=True)

2.5 适用场景

传统深度学习开源项目、论文代码、服务器集群运行。

3. 版本 3:精简 argparse——simple-parsing

3.1 完整代码

from dataclasses import dataclassfrom simple_parsing import ArgumentParser@dataclassclass Config:    epoch: int = 10    learning_rate: float = 5e-4    dataset: str = "mvtec"    data_aug: bool = True    # Python 列表坑:直接赋值有风险,推荐 None + __post_init__    image_size: list[int] = None    categories: list[str] = None    def __post_init__(self):        if self.image_size is None:            self.image_size = [2245121024]        if self.categories is None:            self.categories = ["bottle""cable""capsule"]def train(cfg):    print(cfg)if __name__ == '__main__':    parser = ArgumentParser()    parser.add_arguments(Config, dest="cfg")    cfg = parser.parse_args().cfg    train(cfg)

3.2 命令行修改

python train.py --epoch 20 --image_size 256 768

3.3 优缺点

✅ 极度简洁、保留 argparse 全部命令行能力

❌ list 存在 Python 原生坑,直接赋值有风险,推荐 None + __post_init__,或使用不可变的 tuple 替代 list

3.4 适用场景

个人科研、不想写冗长 argparse、追求简洁。

4. 版本 4:严格类型校验——Pydantic

4.1 完整代码

from pydantic import BaseModelclass Config(BaseModel):    epoch: int = 10    learning_rate: float = 5e-4    dataset: str = "mvtec"    data_aug: bool = True    image_size: list[int] = [2245121024]   # 无需 def,直接写    categories: list[str] = ["bottle""cable""capsule"]def train(cfg):    print(cfg)if __name__ == '__main__':    # 简易命令行覆盖(零依赖)    import sys    kwargs = dict(arg.split("="for arg in sys.argv[1:])    cfg = Config(**kwargs)    train(cfg)

4.2 命令行修改

python train.py epoch=20 image_size=[256,768]

4.3 优缺点

✅ 列表无坑、不用 def、强类型严格校验、工业级稳定

❌ 命令行语法不如原生 argparse 直观

4.4 类型校验实战演示(核心对比)

为直观体现 Pydantic 强类型校验和 OmegaConf 弱校验区别,执行错误传参(把 int 类型的 epoch 传入字符串):

错误命令行:

python train.py epoch="我是字符串"

1)Pydantic 运行结果(直接报错):

抛出 ValidationError 异常,提示 epoch 应为整数,传入字符串非法,代码直接终止,杜绝错误参数流入训练流程。

2)OmegaConf 运行结果(自动弱转换):

无任何报错,自动把字符串转为字符串类型,静默接收非法参数

重点:不会在此处报错,但训练使用该参数运算时一定会崩溃。

总结:Pydantic 强制约束参数类型,规避 bug;OmegaConf 宽松兼容,不做强制拦截。

4.5 适用场景

工程项目、部署项目、需要严格类型检查。

5. 版本 5:无 yaml 纯代码——OmegaConf 字典版

5.1 完整代码

from omegaconf import OmegaConfdef train(cfg):    print(cfg)if __name__ == '__main__':    # 外置原生字典    config = {        "epoch"10,        "learning_rate"5e-4,        "dataset""mvtec",        "data_aug"True,        "image_size": [2245121024],        "categories": ["bottle""cable""capsule"]    }    # 普通字典转为 OmegaConf 对象    cfg = OmegaConf.create(config)    # 融合命令行参数(合并覆盖)    cfg = OmegaConf.merge(cfg, OmegaConf.from_cli())    train(cfg)

或者直接使用 create 创建:

from omegaconf import OmegaConfdef train(cfg):    print(cfg)if __name__ == '__main__':    cfg = OmegaConf.create({        "epoch"10,        "learning_rate"5e-4,        "dataset""mvtec",        "data_aug"True,        "image_size": [2245121024],        "categories": ["bottle""cable""capsule"]    })    # 命令行自动合并覆盖    cfg = OmegaConf.merge(cfg, OmegaConf.from_cli())    train(cfg)

5.2 命令行修改

python train.py epoch=20 categories=[bottle,capsule]

5.3 优缺点

✅ 写法自由、列表无坑、不用定义类、不用 def

❌ 无强制类型校验,自动弱转换类型

5.4 适用场景

科研快速迭代、喜欢字典写法、讨厌模板代码。

6. 版本 6:有 yaml 文件——OmegaConf 多 yaml 合并版

6.1 文件结构

├── train.py└── config/    ├── base.yaml    └── bottle.yaml

6.2 基础配置 base.yaml

epoch10learning_rate5e-4dataset"mvtec"data_aug: trueimage_size: [224, 512, 1024]categories: ["bottle", "cable", "capsule"]

6.3 覆盖配置 bottle.yaml

epoch: 20data_aug: falseimage_size: [256, 768]categories: ["bottle"]

6.4 主代码 train.py

from omegaconf import OmegaConfdef train(cfg):    print(cfg)if __name__ == '__main__':    # 多文件合并:基础配置 + 个性化配置    cfg = OmegaConf.load("config/base.yaml")    cfg2 = OmegaConf.load("config/bottle.yaml")    cfg = OmegaConf.merge(cfg, cfg2)    # 命令行最高优先级覆盖    cfg = OmegaConf.merge(cfg, OmegaConf.from_cli())    train(cfg)

6.5 运行方式(三种覆盖优先级 + 合并最终结果)

优先级:命令行 > 个性化yaml > 基础yaml

合并规则:后加载的配置 覆盖 先加载的同名键,不同键保留全部,无冲突合并。

1)仅合并两个 YAML 文件(无命令行)

# 纯文件合并python train.py

base.yaml + bottle.yaml 合并结果:

epoch20learning_rate5e-4dataset"mvtec"data_aug: falseimage_size: [256, 768]categories: ["bottle"]

2)追加命令行覆盖(最高优先级)

# 命令行临时覆盖(最高优先级)python train.py learning_rate=1e-3 image_size=[512,1024]

最终完整合并结果:

epoch20learning_rate1e-3dataset"mvtec"data_aug: falseimage_size: [512,1024]categories: ["bottle"]

6.6 优缺点

✅ 支持多配置合并、分层管理、批量实验、业内标准

✅ 列表 bool 无任何坑、命令行极其顺滑

❌ 需要管理 yaml 文件,新手稍微抽象

6.7 适用场景

大厂项目、SOTA 论文、大规模调参、多实验管理。

7. 六种写法横向对比总结

方案

列表是否要 def

命令行

多配置合并

难度

推荐指数

Config

不需要

不支持

不支持

极低

原生 argparse

不需要

完美支持

不支持

⭐⭐⭐

simple-parsing

必须写

完美支持

不支持

⭐⭐⭐⭐

Pydantic

不需要

简易支持

不推荐

⭐⭐⭐⭐

OmegaConf 字典

不需要

完美支持

支持

极低

⭐⭐⭐⭐⭐

OmegaConf-YAML

不需要

完美支持

最强支持

⭐⭐⭐⭐⭐

8. 选择建议

  1. 自己随便跑代码、不爱折腾 → Config / Pydantic

  2. 开源投稿、要通用、兼容服务器 → 原生 argparse

  3. 喜欢类写法、又不想写冗长 argparse → simple-parsing

  4. 追求极简、无坑、自由灵活 → OmegaConf 字典版

  5. 做科研批量实验、多组参数、分层配置 → OmegaConf + YAML(终极方案)

9. 全文总结

本文从最简单的字典硬编码开始,循序渐进演示了深度学习六种主流配置方案,覆盖开发中全部常用参数类型:int、float、str、bool、int list、str list。结合实战对比、类型校验、合并规则、命令行用法,清晰区分各类配置库的底层差异。

1)所有配置库本质完全一致:默认参数 + 外部优先级覆盖。

  • 没有任何一种配置能做到 “不用改文件”,静态配置都需要手动编辑;
  • 真正的差距在于:是否支持命令行临时覆盖、是否做类型校验、是否支持多文件合并。

2)原生 argparse 缺点明显:

  • 代码冗长、list 必须 nargs、bool 存在原生 BUG,必须手写 str2bool 转换函数,
  • 目前仅用于通用开源兼容。

3)simple-parsing 简化 argparse,但存在 Python 列表默认值坑:

  • list 最好赋值 None + __post_init__,使用有门槛。

4)Pydantic 与 OmegaConf 是目前主流优选,二者区别通俗易懂:

  • Pydantic:先定义模板、约束类型,再填充数据。强校验、报错直白,严格管控参数,适合工业部署、工程开发。

  • OmegaConf:先写数据、无需模板,动态生成配置。弱校验、静默容错,语法自由无坑,适合科研快速迭代、调参实验。

5)OmegaConf 容错机制提醒:

  • 它不会拦截非法参数,哪怕类型错误也能运行;
  • 错误参数不会在初始化时报错,但一定会在训练运算、梯度计算时崩溃,且排查难度更大。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-03 19:31:49 HTTP/2.0 GET : https://f.mffb.com.cn/a/493051.html
  2. 运行时间 : 0.358851s [ 吞吐率:2.79req/s ] 内存消耗:4,910.21kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=8a3752fd4ab7f4cabd40669ee38ab355
  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.000925s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001370s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000740s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.009440s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001659s ]
  6. SELECT * FROM `set` [ RunTime:0.000665s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.002014s ]
  8. SELECT * FROM `article` WHERE `id` = 493051 LIMIT 1 [ RunTime:0.043630s ]
  9. UPDATE `article` SET `lasttime` = 1783078309 WHERE `id` = 493051 [ RunTime:0.002851s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000763s ]
  11. SELECT * FROM `article` WHERE `id` < 493051 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.002491s ]
  12. SELECT * FROM `article` WHERE `id` > 493051 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.009863s ]
  13. SELECT * FROM `article` WHERE `id` < 493051 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.102263s ]
  14. SELECT * FROM `article` WHERE `id` < 493051 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.018867s ]
  15. SELECT * FROM `article` WHERE `id` < 493051 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.037126s ]
0.363411s