乐于分享
好东西不私藏

kaldi源码解析-有限状态机

kaldi源码解析-有限状态机

概述

Kaldi 的 fstext 模块是语音识别系统中处理加权有限状态转换器(Weighted Finite State Transducers, WFST)的核心组件。该模块基于 OpenFST 库构建,提供了一系列针对语音识别场景优化的 FST 操作和数据结构。

模块架构

核心组件层次

fstext/├── fstext-lib.h          # 主头文件,包含所有核心组件引用├── kaldi-fst-io.h/.cc    # FST 输入输出操作├── context-fst.h/.cc     # 上下文相关 FST(HCLG 中的 C)├── deterministic-fst.h   # 确定性按需 FST 接口├── fstext-utils.h        # FST 工具函数├── lattice-weight.h      # Lattice 权重类型├── determinize-star.h    # DeterminizeStar 算法├── determinize-lattice.h # Lattice 确定化├── lattice-utils.h       # Lattice 操作工具└── table-matcher.h       # 表匹配器

核心组件详解

FST I/O 操作

主要函数

函数名

功能描述

ReadFstKaldi()

读取二进制 FST 文件,支持管道等 Kaldi I/O 机制

ReadFstKaldiGeneric()

通用 FST 读取函数,支持 ConstFst 和 VectorFst

WriteFstKaldi()

写入 FST 文件

CastOrConvertToVectorFst()

将 FST 强制转换或转换为 VectorFst

ReadAndPrepareLmFst()

读取语言模型 FST 并转换为 acceptor

VectorFstTplHolder 类

用于支持 Kaldi Table 机制的 FST Holder 类,实现了 Holder 接口:

template<classArc>classVectorFstTplHolder{public:typedefVectorFst<Arc>T;boolWrite(std::ostream&os,boolbinary,constT&t);boolRead(std::istream&is);T&Value();voidSwap(VectorFstTplHolder<Arc>*other);};

上下文相关 FST(Context FST)

概念介绍

Context FST(通常称为 C.fst)是 HCLG 解码图中的核心组件,负责将音素上下文窗口(如三音素 a,b,c)转换为单个音素(如 a)。

核心类:InverseContextFst

classInverseContextFst:publicDeterministicOnDemandFst<StdArc>{public:InverseContextFst(Labelsubsequential_symbol,// '$' 符号conststd::vector<int32>&phones,// 音素列表conststd::vector<int32>&disambig_syms,// 消歧符号int32context_width,// 上下文宽度(如三音素为3)int32central_position);// 中心位置(如三音素为1)};

关键参数说明

参数

说明

示例值

context_width

上下文窗口大小

3(三音素)、2(双音素)、1(单音素)

central_position

中心音素位置(零基索引)

1(三音素)、0(单音素)

subsequential_symbol

后续符号 '$'

通常为未使用的整数ID

disambig_syms

消歧符号列表

#0#1#2 等的整数ID

核心函数

// 组合上下文 FST 与输入 FSTvoidComposeContext(conststd::vector<int32>&disambig_syms,int32context_width,int32central_position,VectorFst<StdArc>*ifst,// 输入 FST(如 LG.fst)VectorFst<StdArc>*ofst,// 输出 FST(如 CLG.fst)std::vector<std::vector<int32>>*ilabels_out);// 添加后续循环voidAddSubsequentialLoop(StdArc::Labelsubseq_symbol,MutableFst<StdArc>*fst);

确定性按需 FST 接口

DeterministicOnDemandFst 基类

这是一个轻量级的 FST 接口,假设每个状态对于给定输入符号只有一条弧:

template<classArc>classDeterministicOnDemandFst{public:virtualStateIdStart()=0;virtualWeightFinal(StateIds)=0;virtualboolGetArc(StateIds,Labelilabel,Arc*oarc)=0;};

派生类体系

类名

功能

BackoffDeterministicOnDemandFst

带回溯的语言模型包装器

ScaleDeterministicOnDemandFst

权重缩放(如 LM 权重调整)

UnweightedNgramFst

无权重 n-gram 历史 FST

ComposeDeterministicOnDemandFst

两个确定性 FST 的组合

CacheDeterministicOnDemandFst

带缓存的确定性 FST

Lattice 权重类型

LatticeWeightTpl

用于存储两个浮点值的权重类型,通常分别表示声学得分语言模型得分

template<classFloatType>classLatticeWeightTpl{public:LatticeWeightTpl(Ta,Tb);// value1_, value2_TValue1()const;// 通常为声学得分TValue2()const;// 通常为语言模型得分};

半环运算

  • Plus:取更优路径(较小的 value1_+value2_

  • Times(a1+a2,b1+b2)

  • Compare:先比较 value1_+value2_,再比较 value1_-value2_

CompactLatticeWeightTpl

紧凑 Lattice 权重,包含权重值和符号序列:

template<classWeightType,classIntType>classCompactLatticeWeightTpl{public:constW&Weight()const;// 权重值conststd::vector<IntType>&String()const;// 符号序列};

FST 工具函数

符号操作

函数

功能

HighestNumberedOutputSymbol()

获取最大输出符号ID

HighestNumberedInputSymbol()

获取最大输入符号ID

GetInputSymbols()

获取输入符号列表

GetOutputSymbols()

获取输出符号列表

ClearSymbols()

清除符号

FST 变换

函数

功能

DeterminizeStarInLog()

在对数半环中执行 DeterminizeStar

PushInLog()

在对数半环中执行 Push 操作

MinimizeEncoded()

编码后最小化

SafeDeterminizeWrapper()

安全的确定化包装器

SafeDeterminizeMinimizeWrapper()

安全确定化并最小化

特殊操作

函数

功能

MakeLinearAcceptor()

创建线性 acceptor

MakeLoopFst()

创建循环 FST

PhiCompose()

Phi 组合(用于回退语言模型)

RhoCompose()

Rho 组合

PropagateFinal()

传播终态概率

IsStochasticFst()

检查 FST 是否随机

HCLG 解码图构建流程

L.fst(Lexicon)        G.fst(LanguageModel)|                      |+----------+-----------+|vLG.fst(组合)|vAddSubsequentialLoop|vComposeContext(C.fst)|vCLG.fst|vComposewithH.fst|vHCLG.fst(最终解码图)

核心算法

DeterminizeStar 算法

针对带消歧符号的 FST 进行确定化,处理 epsilon 转换和消歧符号的特殊情况:

voidDeterminizeStarInLog(VectorFst<StdArc>*fst,floatdelta=kDelta,bool*debug_ptr=NULL,intmax_states=-1);

Lattice 确定化

将 Lattice 转换为确定化形式,用于高效的最佳路径搜索:

voidDeterminizeLattice(constLattice&ifst,Lattice*ofst,...);

使用示例

读取和写入 FST

// 读取 FSTfst::Fst<fst::StdArc>*fst=fst::ReadFstKaldiGeneric("model.fst");// 转换为 VectorFstfst::VectorFst<fst::StdArc>*vfst=fst::CastOrConvertToVectorFst(fst);// 写入 FSTfst::WriteFstKaldi(*vfst,"output.fst");

构建 Context FST

std::vector<int32>phones={1,2,3,4,5};// 音素列表std::vector<int32>disambig_syms={100,101};// 消歧符号int32context_width=3;// 三音素int32central_position=1;// 中心位置fst::InverseContextFstctx_fst(subsequential_symbol,phones,disambig_syms,context_width,central_position);

FST 组合

fst::VectorFst<fst::StdArc>lg_fst,clg_fst;std::vector<std::vector<int32>>ilabels;// 添加后续循环fst::AddSubsequentialLoop(subsequential_symbol,&lg_fst);// 组合上下文fst::ComposeContext(disambig_syms,context_width,central_position,&lg_fst,&clg_fst,&ilabels);

设计要点

按需构建(On-Demand)

DeterministicOnDemandFst 接口允许按需构建状态和弧,避免预先展开整个 FST,节省内存并提高效率。

对数半环优化

在对数半环中执行确定化等操作,避免数值下溢问题:

template<ReweightTypertype>voidPushInLog(VectorFst<StdArc>*fst,uint32ptype,floatdelta=kDelta){VectorFst<LogArc>*fst_log=newVectorFst<LogArc>;Cast(*fst,fst_log);// 在对数半环中操作...}

消歧符号处理

消歧符号(#0#1#2...)用于解决 FST 组合后的非确定化问题,在 Context FST 中通过自环传递。

随机化保证

IsStochasticFst() 函数验证 FST 的随机性质,确保每个状态的输出弧权重和为 1。

性能优化策略

优化手段

说明

ConstFst

使用只读 FST 提高解码性能

缓存机制

CacheDeterministicOnDemandFst 缓存常用弧

编码最小化

MinimizeEncoded() 在保持符号位置的同时最小化状态数

对数半环

避免数值精度问题

相关工具

fstbin 目录下的命令行工具

工具

功能

fstcopy

复制 FST

fstcomposecontext

组合上下文 FST

fstdeterminizelog

对数确定化

fstminimizeencoded

编码最小化

fstaddselfloops

添加自环

fstaddsubsequentialloop

添加后续循环

fstmakecontextfst

构建上下文 FST

fsttablecompose

表组合

总结

Kaldi 的 fstext 模块提供了完整的 WFST 操作工具链,特别针对语音识别场景进行了优化:

  1. Context FST:高效处理音素上下文建模

  2. 确定性按需接口:支持大规模语言模型的高效查询

  3. Lattice 权重系统:灵活处理多维度得分

  4. 丰富的工具函数:支持各种 FST 变换和优化

该模块是 Kaldi 语音识别系统的核心组件,为解码图构建和声学解码提供了坚实的基础。

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-05-20 07:26:24 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/643857.html
  2. 运行时间 : 0.240060s [ 吞吐率:4.17req/s ] 内存消耗:4,744.09kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=62e3fe62f330a0c2f813e53e6d6671ad
  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.000808s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001493s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000603s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000611s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001582s ]
  6. SELECT * FROM `set` [ RunTime:0.000522s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001524s ]
  8. SELECT * FROM `article` WHERE `id` = 643857 LIMIT 1 [ RunTime:0.001098s ]
  9. UPDATE `article` SET `lasttime` = 1779233184 WHERE `id` = 643857 [ RunTime:0.088762s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.008917s ]
  11. SELECT * FROM `article` WHERE `id` < 643857 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001446s ]
  12. SELECT * FROM `article` WHERE `id` > 643857 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001565s ]
  13. SELECT * FROM `article` WHERE `id` < 643857 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.002750s ]
  14. SELECT * FROM `article` WHERE `id` < 643857 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.026224s ]
  15. SELECT * FROM `article` WHERE `id` < 643857 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.005140s ]
0.244003s