当前位置:首页>学习笔记>RNN、LSTM、GRU 学习笔记:从循环结构到门控记忆

RNN、LSTM、GRU 学习笔记:从循环结构到门控记忆

  • 2026-04-27 19:50:50
RNN、LSTM、GRU 学习笔记:从循环结构到门控记忆

RNN、LSTM、GRU 学习笔记:从循环结构到门控记忆

最近在看强化学习里的 recurrent policy。

很多策略网络会引入 RNN、LSTM 或 GRU,用来处理带历史信息的状态。

如果只看代码,很容易卡在几个问题上:

  • 为什么要一直传递隐藏状态?
  • LSTM 里的记忆元到底和隐藏状态有什么区别?
  • GRU 少了一个记忆元,历史信息又存在哪里?
  • LSTM 和 GRU 的图里为什么经常看不到最终输出 

这篇文章不追求把所有细节讲完,只先把主线理清楚。


先说结论

RNN 系列模型的核心,是把序列历史压缩到一个状态里,再传给下一个时间步。

vanilla RNN 只有一个隐藏状态 

它结构简单,但长序列中容易出现梯度消失或梯度爆炸。

LSTM 在隐藏状态之外,额外引入记忆元 

可以理解为:

 负责长期保存信息, 负责当前对外表达。

GRU 则进一步简化。

它没有单独的记忆元,而是把历史信息和当前表达都合并在隐藏状态  中。


为什么还要看 RNN?

现在很多场景会优先想到 Transformer。

但在一些工程任务里,RNN 仍然有价值。

比如:

  • 模型需要比较小;
  • 推理要快;
  • 数据是连续时间序列;
  • 当前决策依赖最近一段历史;
  • 不一定需要大规模上下文建模。

在强化学习、机器人控制、时间序列预测等任务里,RNN、LSTM、GRU 仍然经常出现。

它们不是最时髦的结构,但很适合用来理解“历史状态如何参与当前决策”。


输入和输出的几种结构

RNN 处理的是序列问题。

序列问题不只是“多个输入对应多个输出”,还可以有很多形式。

  • one-to-one
  • one-to-many
  • many-to-one
  • many-to-many(同步)
  • many-to-many(异步)

这几种结构在实际任务中,大概可以这样对应:

输入-输出结构
输入形式
输出形式
常见应用
one-to-one
一个输入
一个输出
普通分类、普通回归,比如图片分类、房价预测
one-to-many
一个输入
一个序列输出
图像生成文字描述、根据一个主题生成一段文本
many-to-one
一个序列输入
一个输出
文本情感分类、动作识别、时间序列分类
many-to-many(同步)
一个序列输入
等长序列输出
序列标注、词性标注、每一帧视频分类
many-to-many(异步)
一个序列输入
不等长序列输出
机器翻译、语音识别、文本摘要

这里需要注意:

one-to-one 严格来说不一定需要 RNN,它只是放在这里作为对比。

RNN 真正有价值的地方,是后面这些带有序列输入或序列输出的任务。

RNN 输入输出结构

图片引用:A Critical Review of Recurrent Neural Networks for Sequence Learning


vanilla RNN:当前输入加历史状态

先看最经典的 vanilla RNN。

它的核心是一个循环传递的隐藏状态。

vanilla RNN 结构

图片引用:https://zh.d2l.ai/chapter_recurrent-neural-networks/rnn.html

每一个时间步都会接收两个输入:

  • 当前时刻的输入 
  • 上一个时刻传下来的隐藏状态 

然后模型计算当前时刻的隐藏状态 ,继续传给下一个时间步。

这里最重要的一点是:

RNN 在不同时间步使用的是同一组参数。

序列长度变长时,模型不是新增一套网络,而是把同一个循环层反复展开。


vanilla RNN 的数学表达

先定义几个量:

  • :当前时刻的输入;
  • :上一时刻的隐藏状态;
  • :当前时刻的隐藏状态;
  • :当前时刻的任务输出。

隐藏状态更新公式是:

输出层公式是:

如果是分类任务,通常还会接一个 

这里有几个关键点:

  •  控制当前输入如何影响隐藏状态;
  •  控制历史隐藏状态如何影响当前隐藏状态;
  •  控制隐藏状态如何映射到任务输出;
  •  通常可以是  或 
  •  和  是偏置项。

所以 vanilla RNN 的核心就是:

当前状态 = 当前输入 + 历史状态。


vanilla RNN 的问题

vanilla RNN 的结构很直观,但它有一个典型问题:

长序列训练时,历史信息很容易传不远。

原因在于 RNN 需要沿着时间反向传播,也就是常说的 BPTT。

当序列很长时,梯度会经过很多次连续相乘,容易出现两个极端:

  • 梯度消失:前面时间步的信息对后面几乎没有影响;
  • 梯度爆炸:梯度数值过大,训练不稳定。

所以 vanilla RNN 更适合处理短期依赖。

如果任务需要记住更长时间之前的信息,就需要引入门控机制。

这也是 LSTM 和 GRU 出现的主要原因。


LSTM:把长期记忆单独拎出来

LSTM 的目标,是缓解 vanilla RNN 在长序列中记不住远期信息的问题。

它额外维护了一个记忆元 ,再通过门控机制控制信息的遗忘、写入和输出。

可以简单概括为:

三道门:

  • 遗忘门;
  • 输入门;
  • 输出门。

一个记忆元:

LSTM 结构

图片引用:https://zh.d2l.ai/chapter_recurrent-modern/lstm.html


LSTM 的数学表达

先定义几个量:

  • :当前时刻的输入;
  • :上一时刻的隐藏状态;
  • :上一时刻的记忆元,也叫细胞状态。

LSTM 的计算链路可以理解成这样:

遗忘门:

输入门:

候选记忆元:

更新记忆元:

输出门:

当前隐藏状态:

这里最关键的是三道门和一个记忆元:

  •  是遗忘门,决定旧记忆  保留多少;
  •  是输入门,决定候选记忆  写入多少;
  •  是输出门,决定当前记忆  对外输出多少;
  •  是记忆元,负责保存更长期的信息;
  •  是当前隐藏状态,通常会传给下一时刻,也可以用于当前时刻的任务输出。
  •  表示按元素相乘;
  •  表示 sigmoid 函数,输出范围在 0 到 1 之间。

所以 LSTM 的核心思想是:

用记忆元保存长期信息,再用遗忘门、输入门、输出门控制信息的保留、写入和输出。


LSTM 的代价

LSTM 通过记忆元和门控机制缓解了长期依赖问题,但它也不是没有代价。

主要问题有三个:

  • 结构更复杂,参数量比 vanilla RNN 更大;
  • 每个时间步要计算三个门和一个候选记忆元,训练和推理成本更高;
  • 在序列特别长、数据规模很大时,仍然不如 Transformer 这类结构容易并行。

所以 LSTM 适合需要保留长期信息、但又不希望模型过于庞大的场景。

在强化学习策略网络里,如果状态历史对当前动作有影响,LSTM 是一个常见选择。

但如果只是短窗口信息,或者对实时性要求很高,就需要重新权衡它的计算成本。


GRU:把记忆和隐藏状态合并

GRU 可以理解成 LSTM 的简化版本。

它不再单独维护记忆元,而是把长期信息和当前隐藏状态合并到  里。

可以简单概括为:

两道门:

  • 重置门;
  • 更新门。

一个候选状态:

  • 候选隐藏状态。
GRU 结构

图片引用:https://zh.d2l.ai/chapter_recurrent-modern/gru.html


GRU 的数学表达

先定义两个量:

  • :当前时刻的输入;
  • :上一时刻的隐藏状态。

GRU 的计算链路可以理解成这样:

重置门:

更新门:

候选隐藏状态:

当前隐藏状态:

这里最关键的是两个门:

  •  是重置门,决定在计算候选隐藏状态时,要不要参考一部分历史信息;
  •  是更新门,决定最终状态里,保留多少旧状态、写入多少新状态;
  •  是候选隐藏状态,可以理解成当前时刻准备写入的新记忆;
  •  表示按元素相乘;
  •  表示 sigmoid 函数,输出范围在 0 到 1 之间。

所以 GRU 的核心思想是:

用更新门控制“记住多少过去”,用重置门控制“如何生成新的候选记忆”。


GRU 的取舍

GRU 把 LSTM 里的记忆元和隐藏状态合并了,同时减少了门的数量。

这样做的好处是:

  • 参数更少;
  • 计算更快;
  • 实现更简单。

但代价是控制能力也相对弱一些。

GRU 没有单独的记忆元 Ct,也没有单独的输出门。

因此,在某些特别依赖长期精细记忆的任务里,LSTM 可能会更稳。

不过在很多工程任务中,GRU 的效果和 LSTM 接近,同时计算成本更低,所以它经常是一个更实用的折中选择。


LSTM 和 GRU 的历史存取方式

两者最核心的区别,是历史信息存在哪里。

LSTM 是“记忆”和“输出”分开管理。

GRU 是把“记忆”和“输出”合并管理。

对比点
LSTM
GRU
历史主要存在哪里
记忆元 Ct
隐藏状态 Ht
是否有独立长期记忆
没有
怎么保留旧信息
遗忘门 Ft 控制 Ct−1 保留多少
更新门 Zt 控制 Ht−1 保留多少
怎么写入新信息
输入门 It 控制候选记忆 C~t 写入多少
更新门 Zt 控制候选隐藏状态 H~t 写入多少
怎么对外输出
输出门 Ot 从 Ct 中筛出一部分形成 Ht
没有单独输出门,Ht 直接作为当前状态
结构复杂度
更复杂
更简单

一句话总结:

LSTM 更像是单独维护一条长期记忆通道;GRU 则是把长期信息压缩在隐藏状态里。


几个容易混淆的问题

1. LSTM 和 GRU 没有最终输出吗?

不是没有输出。

很多结构图只画了循环单元内部,把任务输出层省略了。

更完整的链路应该是:

vanilla RNN:

LSTM:

GRU:

最终任务输出通常还是由隐藏状态  接一个输出层得到:

这里容易混淆的是:

LSTM 公式里的  是输出门,不是最终任务输出 

2. 为什么要一直传递隐藏状态?

因为当前时刻的输入  只包含当前信息。

很多序列任务需要历史上下文。

隐藏状态  的作用就是:

把过去的信息压缩成一个状态,传给下一个时间步。

可以这样理解:

所以模型看到  时,不只是看到当前输入 ,还通过  间接获得了前面  的信息。

3. 隐藏状态已经包含历史信息,为什么 LSTM 还需要记忆元?

vanilla RNN 只有一个 

它既要记住过去,又要参与当前输出,还要继续传给下一个时刻。

LSTM 把这件事拆开了:

  • :长期记忆,负责保存信息;
  • :当前隐藏状态,负责对外表达和参与输出。

所以可以简单理解为:

记忆元  负责存,隐藏状态  负责用。

不是所有保存在  里的信息都会立刻暴露到 

只有被输出门  选择出来的部分,才会变成当前时刻对外可见的隐藏状态。

4. GRU 的重置门到底起什么作用?

GRU 里更新门  的作用比较直观:

它决定最终状态里,旧状态和新候选状态各占多少。

重置门  的作用更容易被忽略。

它主要作用在生成候选隐藏状态这一步:

关键是这一项:

如果  接近 0,说明生成候选状态时基本不看过去,更多依赖当前输入 

如果  接近 1,说明生成候选状态时会充分参考过去的隐藏状态。

所以重置门可以理解成:

控制“生成新候选状态时,还认不认旧历史”。

而更新门控制的是:

最终状态里,旧历史到底留多少。


阅读建议

读 RNN、LSTM、GRU 时,不要一开始就陷入公式细节。

更好的顺序是:

  1. 先看输入输出结构,确认任务到底是  还是 
  2. 再看隐藏状态  如何沿时间传递;
  3. 然后看 LSTM 的记忆元  为什么要单独存在;
  4. 最后对比 GRU 如何把  合并进 

记住这几句话就够了:

  • vanilla RNN:当前输入加历史状态;
  • LSTM:长期记忆和当前输出分开管理;
  • GRU:把记忆和隐藏状态合并,换取更简单的结构。

最后总结

RNN 系列模型的主线,其实就是一句话:

如何让当前时刻的决策带上过去的信息。

vanilla RNN 用隐藏状态直接传递历史。

LSTM 引入记忆元和三道门,让长期信息更稳定。

GRU 则把结构简化,用两个门完成历史保留和候选状态生成。

理解这条主线之后,再去看 recurrent policy 或时间序列模型,代码里的 hidden_statecell_statereset mask 等概念会清楚很多。


文献引用

  • Lipton, Z. C., Berkowitz, J., & Elkan, C. (2015). A Critical Review of Recurrent Neural Networks for Sequence Learning. arXiv:1506.00019. https://arxiv.org/abs/1506.00019
  • Zhang, A., Lipton, Z. C., Li, M., & Smola, A. J. Dive into Deep Learning. RNN 章节:https://zh.d2l.ai/chapter_recurrent-neural-networks/rnn.html
  • Zhang, A., Lipton, Z. C., Li, M., & Smola, A. J. Dive into Deep Learning. LSTM 章节:https://zh.d2l.ai/chapter_recurrent-modern/lstm.html
  • Zhang, A., Lipton, Z. C., Li, M., & Smola, A. J. Dive into Deep Learning. GRU 章节:https://zh.d2l.ai/chapter_recurrent-modern/gru.html

最新文章

随机文章

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