当前位置:首页>学习笔记>VLLM学习笔记:内存管理与高效推理技术

VLLM学习笔记:内存管理与高效推理技术

  • 2026-02-08 06:28:34
VLLM学习笔记:内存管理与高效推理技术

VLLM学习笔记

核心问题:内存碎片化与浪费

笔记整理自视频教程:https://www.youtube.com/watch?v=6uPnLkCiy5g

碎片化问题场景

示例:内存无法分配

假设在一台40GB显存的A100 GPU上处理多个请求:

初始状态:

内存布局(40GB总量):
├─ 请求A: 3GB [████       ]
├─ 请求B: 4GB [█████      ]
└─ 请求C: 5GB [██████     ]

请求A和B完成后:

内存布局:
├─ 空闲1: 3GB [...        ] ← 碎片
├─ 空闲2: 5GB [.....      ] ← 碎片
└─ 请求C: 5GB [██████     ]

新请求需要6GB:

问题:总空闲内存 = 8GB(3GB + 5GB)
      但没有连续的6GB空间
结果:请求被拒绝 ❌

结论:这就是内存碎片化(Memory Fragmentation)——虽然总内存足够,但无法分配给新请求。

传统方法的巨大内存浪费

批处理策略的问题

传统服务方式:为每个请求预留固定最大序列长度的连续内存块

具体示例:

请求配置:
- 最大序列长度:预留30GB空间
- 实际使用:约12GB空间
- 浪费:18GB

浪费率 = 18GB / 30GB = 60%

普遍统计数据

浪费的原因:

  1. 1. 长尾场景:必须为极长序列预留空间
  2. 2. 平均长度低:大多数请求的序列长度远小于最大值
  3. 3. 碎片化累积:预留的空隙导致碎片,无法有效复用
  4. 4. 分配器限制:即使是碎片化的空闲空间,分配器也无法合并使用

问题影响分析

对服务质量的影响

现象:GPU显存表面上看起来很充足
实际:新请求被拒绝,即使有大量空闲空间

用户视角:
✗ "系统显示有20GB空闲,为什么我的请求被拒绝?"
✗ "明明资源足够,为什么响应这么慢?"

对资源利用率的影响

传统方式资源利用:
显存使用总量:40GB
实际有效使用:12GB
浪费空间:28GB(70%浪费)

技术一:PagedAttention

核心原理

借鉴操作系统的虚拟内存技术

操作系统的解决方案:

问题:程序需要不确定大小的内存
解决:
1. 将RAM分成固定大小的"页"(Page),典型大小4KB
2. 只在需要时分配页
3. 使用"页表"(Page Table)映射逻辑地址到物理地址
4. 程序看到的是连续逻辑空间,OS可以分散存储到物理内存任意位置

关键洞察:

物理内存无需连续,页可以散布在任何位置,这消除了外部碎片化

应用到KV Cache

VLLM将OS的这个成熟思想应用到大语言模型的KV Cache管理:

  • • 每个token的attention计算需要查询历史所有token的Keys和Values
  • • 这些K/V对需要缓存以加速推理
  • • 传统方法需要为每个请求预留连续的大块内存
  • • PagedAttention将其分解为固定大小的块

块分配机制

基本概念

Blocks(块):

  • • KV Cache被分成固定大小的块
  • • 每个块通常存储16个token的KV对
  • • 块大小可配置,但16是常见选择

为什么是16个token?

  • • 平衡粒度和开销
  • • 太小(如1个token):管理开销大
  • • 太大(如256个token):灵活性差,浪费多
  • • 16个token在大多数场景下是最佳平衡点

序列到块的映射

示例:64个token的序列

序列长度:64 tokens
块大小:16 tokens/block
需要的块数:⌈64/16⌉ = 4 blocks

映射关系:
块0: token 1-16   [███████████████]
块1: token 17-32  [███████████████]
块2: token 33-48  [███████████████]
块3: token 49-64  [███████████████]

块表映射机制

逻辑块到物理块的映射

块表(Block Table)的作用:

  • • 记录逻辑块序号到物理块位置的映射
  • • 类似OS的页表
  • • 允许非连续的内存分配

具体示例:

逻辑块序列(按生成顺序):
  B0, B1, B2, B3, B4, B5, B6, B7

对应的物理块位置:
  5,  2,  7,  0,  12, 3,  9,  15

块表记录:
逻辑块0 → 物理块5
逻辑块1 → 物理块2
逻辑块2 → 物理块7
逻辑块3 → 物理块0
逻辑块4 → 物理块12
逻辑块5 → 物理块3
逻辑块6 → 物理块9
逻辑块7 → 物理块15

内存视图对比

传统方式(连续分配):
物理内存(逻辑块 = 物理块):
[ B0 | B1 | B2 | B3 | B4 | B5 | B6 | B7 ]
  ↑                                               ↑
起点                                            终点
要求:必须有一整块连续空间


**PagedAttention(非连续分配):```
物理内存(碎片化但可用):
[ B3 | B1 | XX | B0 | XX | XX | B2 | XX | XX | B6 | XX | XX | XX | B4 | B5 | B7 ]
  ↑    ↑        ↑                   ↑                    ↑              ↑              ↑
位置0 位置1   位置3                位置5                 位置9          位置12         位置15

XX表示其他请求占用的块
块的顺序不重要,块表会翻译逻辑位置

PagedAttention工作流程

单请求处理流程

用户请求: 生成64个token
计算需要的块数
⌈64/16⌉ = 4个块
分配块B0, B1, B2, B3
生成token 1-16
存储到块B0
生成token 17-32
存储到块B1
生成token 33-48
存储到块B2
生成token 49-64
存储到块B3
请求完成
立即释放B0, B1, B2, B3
块返回空闲池, 可供新请求使用

与传统方式对比

特性
传统方式
PagedAttention
分配时机
请求开始时预分配整个序列
按需分配每个块
内存占用
预留最大长度
只分配实际使用量
预估难度
需要预估最大序列长度
无需预估,动态增长
内存释放
整个大块一起释放
块级释放,立即可用
碎片化
严重
几乎消除

技术二:前缀共享(Prefix Sharing)

应用场景

典型使用案例

示例1:系统提示词共享

3个用户同时查询,都用相同的系统提示词:

用户A + 系统提示词:"你是一个乐于助人的AI助手,请用简单术语..."
                    └─→ 具体问题:"解释量子计算"

用户B + 系统提示词:"你是一个乐于助人的AI助手,请用简单术语..."
                    └─→ 具体问题:"解释相对论"

用户C + 系统提示词:"你是一个乐于助人的AI助手,请用简单术语..."
                    └─→ 具体问题:"解释机器学习"

示例2:多参数变体

相同prompt,不同参数:

请求1: "解释量子计算,用简单术语"
请求2: "解释量子计算,用技术术语"
请求3: "解释量子计算,用一句话"

共享机制

内存布局对比

传统方式(无共享):

内存占用 = 3份完整请求

请求1: [系统提示词][量子计算简单术语......]
请求2: [系统提示词][量子计算技术术语......]
请求3: [系统提示词][量子计算一句话........]

重复存储系统提示词 3次 ❌

PagedAttention前缀共享:

共享前缀(存储1次):
[系统提示词][量子计算                  ]

各请求只存储 divergent 部分:
请求1: 指针 → [共享前缀][,用简单术语......]
请求2: 指针 → [共享前缀][,用技术术语......]
请求3: 指针 → [共享前缀][,用一句话........]

系统提示词只存储1次 ✓

前缀共享流程

请求3分支
请求2分支
请求1分支
共享前缀Block

共享

共享

共享

独有

独有

共享

共享

共享

独有

独有

共享

共享

共享

独有

Block0: 系统提示词tokens 1-16
Block1: 系统提示词tokens 17-32
Block2: 系统提示词tokens 33-48
Block3: 用简单术语tokens 49-64
Block4: 用简单术语tokens 65-80
Block5: 用技术术语tokens 49-64
Block6: 用技术术语tokens 65-80
Block7: 用一句话tokens 49-56
请求1
请求2
请求3

共享时的引用计数

引用计数机制

原理:

  • • 每个块维护一个引用计数器
  • • 记录有多少个请求正在使用该块
  • • 当引用计数降为0时,块可以被释放

示例:

共享前缀Block0-2:
- 引用计数 = 3 (Request1, Request2, Request3)

Request1完成后:
- 独有Block3,4 引用计数 = 0 → → 释放
- 共享Block0-2 引用计数 = 2 (Request2, Request3) → 保留

Request2完成后:
- 独有Block5,6 引用计数 = 0 → → 释放
- 共享Block0-2 引用计数 = 1 (Request3) → 保留

Request3完成后:
- 独有Block7 引用计数 = 0 → → 释放
- 共享Block0-2 引用计数 = 0 → → 释放

技术三:连续批处理(Continuous Batching)

传统静态批处理的问题

工作机制

静态批处理规则:

  • • 设定固定的批次大小(如4个请求)
  • • 同时开始处理4个请求
  • • 必须等待所有4个请求完成才能开始新批次
  • • 即使有些请求已经完成,GPU也不能开始新请求

问题分析:

时间轴:
t=0s: 开始4个请求
t=3s: 请求1完成 → → GPU空闲(等待其他请求)
t=4s: 请求2完成 → → GPU继续空闲
t=5s: 请求3完成 → → GPU继续空闲
t=10s: 请求4完成 → → 可以开始新批次

GPU空闲时间:5秒(占总时间的50%)
浪费的计算资源:50%

问题根源

原因:

  • • 不同请求的处理时间差异大
  • • 长请求(生成长回答)拖累整个批次
  • • GPU无法"插队"处理新请求

举个例子:

就像一辆公交车:
- 必须等到所有乘客都下车才能接新客
- 即使有些乘客很快下车,车也要等最后一个慢乘客
- 其他想上车的人只能在一旁等待

连续批处理工作原理

核心机制

连续批处理规则:

  • • 设定最大批次大小(如4个位置)
  • • 请求完成立即替换,不必等全部完成
  • • 随时动态添加和移除请求
  • • GPU始终保持满载

处理流程

17694432001769443201176944320217694432031769443204176944320517694432061769443207176944320817694432091769443210176944321117694432121769443213176944321417694432151769443216176944321717694432

时间轴分析:

t=0s: 请求A1, B1, C1, D1 开始(占满4个位置)
t=3s: A1完成 → 立即换入 A2(不等待B1, C1, D1)
t=4s: B1完成 → 立即换入 B2
t=5s: C1完成 → 立即换入 C2
t=7s: A2完成 → 立即换入 A3
t=9s: B2完成 → 立即换入 B3
t=10s: D1完成 → 立即换入 D2
t=13s: C2完成 → 立即换入 C3
t=15s: B3完成 → 完成(假设没有更多请求)
t=17s: A3完成 → 完成
t=18s: C3完成 → 完成
t=18s: D2完成 → 完成

结果:
- GPU全程忙碌(18秒)
- 处理了12个请求(A1-A3, B1-B3, C1-C3, D1-D2)
- 空闲时间:0秒

动态调度优势

关键特性

特性
说明
即时替换
请求完成后立即被新请求替换
动态批次
批次大小可以在最大值范围内波动
无等待
GPU不需要等待任何请求
优先级
可以实现不同请求的优先级调度
弹性扩展
根据负载自动调整处理能力

与PagedAttention的协同效应

为什么连续批处理需要PagedAttention?

连续批处理要求:
- 请求可以随时添加
- 内存需要动态分配和释放

传统连续内存的问题:
- 如果每个请求都需要大块连续内存
- 无法动态分配(因为会产生碎片)
- 无法实现连续批处理

PagedAttention的优势:
- 块级内存管理
- 可以分配任意数量的块
- 可以随时释放
- 完美支持连续批处理

协同工作:

请求完成 → 释放块 → 块返回空闲池 → 立即分配给新请求

连续批处理依赖PagedAttention的动态内存管理能力

关键概念

概念
简短解释
关键特点
KV Cache
存储attention计算的键值对
加速推理,避免重复计算
PagedAttention
借鉴OS虚拟内存的KV cache管理
分块分配,消除碎片
Block(块)
固定大小的内存单元
通常16 tokens/block
块表
逻辑块到物理块的映射
允许非连续分配
前缀共享
多个请求共享相同前缀
节省50%-75%内存
连续批处理
请求完成立即替换
GPU不空闲,提升吞吐
引用计数
跟踪块被多少请求使用
支持释放共享块
碎片化
内存总充足但不连续
PagedAttention消除
静态批处理
等待整个批次完成
低效,GPU浪费
内存浪费
预留未使用的内存
传统方式60%-80%,VLLM<4%

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-02-09 04:32:54 HTTP/2.0 GET : https://67808.cn/a/463298.html
  2. 运行时间 : 0.154599s [ 吞吐率:6.47req/s ] 内存消耗:4,617.38kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=ff023343733cb0380e5548b608f665db
  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.000857s ] mysql:host=127.0.0.1;port=3306;dbname=no_67808;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000995s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000311s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000277s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000709s ]
  6. SELECT * FROM `set` [ RunTime:0.000266s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000743s ]
  8. SELECT * FROM `article` WHERE `id` = 463298 LIMIT 1 [ RunTime:0.001026s ]
  9. UPDATE `article` SET `lasttime` = 1770582774 WHERE `id` = 463298 [ RunTime:0.002321s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 65 LIMIT 1 [ RunTime:0.000321s ]
  11. SELECT * FROM `article` WHERE `id` < 463298 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000515s ]
  12. SELECT * FROM `article` WHERE `id` > 463298 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.004658s ]
  13. SELECT * FROM `article` WHERE `id` < 463298 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001020s ]
  14. SELECT * FROM `article` WHERE `id` < 463298 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.002117s ]
  15. SELECT * FROM `article` WHERE `id` < 463298 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.008330s ]
0.156246s