当前位置:首页>Linux>MCU到Linux全链路梳理嵌入式任务调度演化历程

MCU到Linux全链路梳理嵌入式任务调度演化历程

  • 2026-08-18 23:11:41
MCU到Linux全链路梳理嵌入式任务调度演化历程

单核跑几百进程是障眼法——任务间切片切换,切得够快就"同时"。从MCU裸机到FreeRTOS抢占再到Linux CFS,调度器决定了谁拿CPU。

一、并发本质---时间片轮转

并发不是并行。并行要多个核同时干活,并发是一个核在多个任务间切片切换。一个收银员给三个人排队结账是并发,三个收银员同时开工才是并行。

单核板上音乐在放、串口在收数据、按键要响应——靠的就是时间片切片

切换不是免费的。时间片太短,CPU全耗在切换上;太长,按键100ms才响应,用户摔鼠标。好的调度器目标不是让一个任务最快,而是让所有任务都觉得"不卡"。

本节要点:并发是单核分时复用,调度器的核心矛盾是切换开销与响应延迟的权衡。

二、调度策略演进---从协作到公平

策略
谁决定切换
公平性
实时性
代表
协作式
程序自己
靠自觉
Win3.1、最简MCU固件
抢占式优先级
OS
弱,高优先级可能饿死低的
FreeRTOS、VxWorks
公平调度
OS
强,设计目标
一般
Linux CFS

演进逻辑一句话:协作式一个死循环全系统卡死 → 抢占式OS强制切换但低优先级可能饿死 → 公平调度按比例分配谁都饿不死,但最紧急的事可能多等一会。

本节要点:调度策略从协作到抢占再到公平,核心矛盾从"卡死"演进到"饿死"再演进到"响应延迟"。

三、SuperLoop裸机 没有调度器的世界

每个嵌入式工程师都写过这个while(1)

int main(void){    init_all();while (1) {        read_sensor_task();    // 读传感器,2ms        process_data_task();   // 处理数据,5ms        upload_data_task();    // 上传数据,50ms ← 卡在这        check_button_task();   // 按键,0.1ms    }}

upload_data_task()阻塞50ms,按键50ms后才响应——这就是SuperLoop的死穴。裸机"并发"全靠中断硬扛,而中断的坑最难查:共享变量没加volatile被编译器优化、中断里调printf丢嵌套。

救SuperLoop的唯一办法是状态机,把长任务拆成每次几十微秒的小片段:

typedef enum { UPLOAD_IDLE, UPLOAD_SENDING, UPLOAD_WAIT_ACK } upload_state_t;void upload_data_task(void){static upload_state_t state = UPLOAD_IDLE;switch (state) {case UPLOAD_IDLE:if (data_ready) { start_uart_send(data); state = UPLOAD_SENDING; }break;case UPLOAD_SENDING:if (uart_tx_complete()) state = UPLOAD_WAIT_ACK;break;  // 每个case执行<100μs,快速返回case UPLOAD_WAIT_ACK:if (ack_received) state = UPLOAD_IDLE;break;    }}

状态机能解决卡顿,但本质是你在手写调度逻辑。复杂到一定程度,你就在手搓一个RTOS——这时候该上FreeRTOS了。

本节要点:SuperLoop用状态机拆长任务换取响应性,但手写状态机等于手写调度器,复杂度有上限。

四、FreeRTOS抢占 优先级调度实战

调度规则:永远让最高优先级的就绪任务运行。中断唤醒了高优先级任务,立刻抢占当前任务;高优先级阻塞了,回到低优先级继续。

怎么O(1)找到最高优先级?FreeRTOS用优先级位图+CLZ指令

// 就绪位图 uxTopReadyPriority:每一位代表一个优先级是否就绪//   bit0=优先级0就绪, bit3=优先级3就绪, ... bit31=优先级31就绪// 找最高优先级:一条CLZ指令,O(1)最高优先级 = 31 - __CLZ(uxTopReadyPriority)

三种配置模式:

模式
PREEMPTION
TIME_SLICING
行为
抢占+时间片(默认)
1
1
高抢占低,同优先级轮流
抢占无时间片
1
0
高抢占低,同优先级跑到底
协作式
0
X
任务必须主动让出或阻塞

抢占式的代价是优先级反转:高优先级等低优先级的锁时,被中等优先级插队反卡死——靠优先级继承补救,治本则别让不同优先级抢同一把锁。

RTOS
调度策略
典型场景
RT-Thread
抢占+同优先级时间片
物联网、工业控制
Zephyr
抢占+协作可选
可穿戴、传感器节点
ChibiOS/RT
抢占式
电机控制、汽车ECU

本节要点:FreeRTOS用位图+CLZ实现O(1)调度,核心代价是优先级反转,需用优先级继承或锁隔离来规避。

五、Linux CFS vruntime公平调度

FreeRTOS那套在Linux上行不通——一个系统跑200+进程,严格优先级会让SSH饿死,系统直接废。

CFS的核心规则就一条:给每个进程一个vruntime计数器,谁vruntime最小就选谁跑

vruntime += 实际运行时间 × (NICE_0_LOAD / 进程权重)nice值越低 → 权重越高 → vruntime长得慢 → 更容易被选中

你只调nice(-20~+19)表达"谁更重要",CFS自动把"重要"翻译成"多拿CPU"。nice每差1级,CPU份额约差10%。

时间片按权重动态算,进程多了每片保底0.75ms,避免切换开销吞噬CPU。红黑树存就绪队列,找最小vruntime从链表O(n)降到O(1)取最左(缓存leftmost指针)。

实时策略补充:CFS只管普通进程(SCHED_OTHER),实时任务用SCHED_FIFO(跑到阻塞)或SCHED_RR(同优先级轮转),优先级1-99,永远抢占CFS。

切换代价:Linux切换比FreeRTOS慢几个数量级(数μs vs 1.4μs),因为要保存MMU上下文、浮点寄存器、刷新TLB。

本节要点:CFS用vruntime实现按权重公平分配CPU,红黑树O(1)选任务,实时进程用SCHED_FIFO/RR补充。

六、调度配置详解 从编译期到运行期

FreeRTOS的配置在FreeRTOSConfig.h,运行期通过任务API调:

// FreeRTOSConfig.h 编译期宏#define configUSE_PREEMPTION      1    // 1=抢占式, 0=协作式#define configUSE_TIME_SLICING    1    // 同优先级时间片轮转#define configMAX_PRIORITIES      7    // 优先级上限#define configTICK_RATE_HZ        1000 // tick频率// 任务创建指定优先级,运行期可动态调整xTaskCreate(task_func, "name"256NULL5, &handle);vTaskPrioritySet(handle, 5);   // 改优先级vTaskSuspend(handle);          // 挂起 / vTaskResume() 恢复

Linux不用重新编译,运行期随时改:

# 命令行nice -n 10 ./program        # 启动时指定nicerenice -n 5 -p 1234         # 运行期改nicechrt -f 80 ./program        # SCHED_FIFO 优先级80chrt -r 50 ./program        # SCHED_RR 优先级50
// 代码接口setpriority(PRIO_PROCESS, 05);            // 调nicesched_setscheduler(0, SCHED_FIFO, &param);  // 改策略
# /proc调CFS参数 + cgroup限带宽/proc/sys/kernel/sched_latency_ns          # target_latency 默认6ms/proc/sys/kernel/sched_min_granularity_ns  # min_granularity 默认0.75msecho 512 > cpu.weight           # cgroup权重 1-10000echo "50000 100000" > cpu.max   # 50% CPU配额
维度
SuperLoop
FreeRTOS
Linux CFS
调度器
没有,while(1)
严格优先级抢占
vruntime公平
公平性
靠设计
核心目标
实时性
看代码
一般(需PREEMPT_RT)
任务数
5-10
30-50
数千
切换耗时
~100周期
数μs
控制度
100%
90%
10%

控制权和通用性不可兼得。SuperLoop全控制但没调度器;CFS超通用但你几乎控制不了细节;FreeRTOS在中间——有调度器,但你说了算。

注意事项

现象
解法
中断共享变量未加volatile
主循环读不到中断更新的值
所有ISR共享变量加volatile
优先级反转
高优先级任务被中等优先级卡死
用优先级继承或避免跨优先级共享锁
SuperLoop长任务阻塞
按键响应延迟超过50ms
状态机拆分,每步执行<100μs
Linux实时进程占满CPU
普通进程饿死,SSH无响应
SCHED_FIFO
配合cgroup限带宽
CFS调度延迟抖动
周期任务jitter大
打PREEMPT_RT补丁或用sched_setscheduler

本节要点:FreeRTOS配置编译期定策略、运行期调优先级;Linux运行期随时改策略和nice,cgroup圈带宽——控制粒度与通用性互斥。


  • 单核并发本质是时间片切片,调度器核心矛盾是切换开销与响应延迟的权衡
  • SuperLoop用状态机拆长任务,FreeRTOS用位图+CLZ做O(1)抢占调度,CFS用vruntime+红黑树做公平分配
  • FreeRTOS优先级反转靠优先级继承,Linux实时进程需cgroup限带宽防饿死
  • 控制权和通用性不可兼得——从裸机到Linux,你交出控制权换回通用性,调度器替你做选择

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-08-21 20:54:30 HTTP/2.0 GET : https://f.mffb.com.cn/a/508635.html
  2. 运行时间 : 0.289140s [ 吞吐率:3.46req/s ] 内存消耗:4,524.03kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=4ce08050318edc01a7ba054d6bb08e92
  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.001217s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001661s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000919s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000639s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001490s ]
  6. SELECT * FROM `set` [ RunTime:0.000571s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001753s ]
  8. SELECT * FROM `article` WHERE `id` = 508635 LIMIT 1 [ RunTime:0.007820s ]
  9. UPDATE `article` SET `lasttime` = 1787316870 WHERE `id` = 508635 [ RunTime:0.005446s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.000751s ]
  11. SELECT * FROM `article` WHERE `id` < 508635 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001167s ]
  12. SELECT * FROM `article` WHERE `id` > 508635 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.004734s ]
  13. SELECT * FROM `article` WHERE `id` < 508635 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.004901s ]
  14. SELECT * FROM `article` WHERE `id` < 508635 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.034538s ]
  15. SELECT * FROM `article` WHERE `id` < 508635 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.010970s ]
0.292690s