当前位置:首页>鸿蒙APP>onCreate写重了:你的鸿蒙App在慢性自杀

onCreate写重了:你的鸿蒙App在慢性自杀

  • 2026-06-30 12:37:34
onCreate写重了:你的鸿蒙App在慢性自杀

你盯着DevEco的Profiler,冷启时间那条红线死活压不下去。用户点桌面图标,白屏僵了小半秒——不长,但足够让人觉得"这App有点糙"。你翻了一遍首页组件的aboutToAppear,又查了路由初始化、网络预连接、数据库打开……到处看着都没大问题。

但我打赌你漏了一个地方:EntryAbilityonCreate()

在HarmonyOS的Stage模型里,onCreate()是整个UIAbility实例诞生的起点——也是最多人悄无声息往里塞"初始化大礼包"的死角。官方写得清清楚楚:这个阶段窗口还没建回调跑在主线程耗时就等于用户看你白屏。你塞进去的每一行重操作,都在直接从用户耐心里扣分。

今天我们就把onCreate()这个看似简单的回调拆透:它到底什么时候触发、能做什么、绝不能做什么、仓颉工程里怎么写才像量产代码而不是Demo


一、先搞清一件事:onCreate()不是"页面初始化",是"壳的出生证明"

(1)Create状态的本质——系统替你按下的开机键

Create状态:应用加载过程中,Ability实例创建完成时触发,系统会调用

onCreate()回调。可在该回调中进行页面初始化,例如变量定义、资源加载等,用于后续UI展示。

但这里"页面初始化"四个字很容易误导——onCreate时根本没有页面,也没有窗口。它所谓的"初始化",指的是Ability这个壳自身的启动准备:解析系统传给你的Want(启动参数信封)、安顿好只发生一次的生命周期状态、把后续要用的数据结构先占个位。

触发时机翻译成人话就一句:

用户(或系统)要拉起你的Ability → 系统new了一个UIAbility实例 → 立刻调onCreate(want, launchParam)→ 然后才去建窗口 → 然后才挂UI。

所以回调签名里最重要的东西,其实是第一个参数——want: Want

cj

// 仓颉工程里的 main_ability.cj(示意形态)class EntryAbility <: Ability {  publicoverride func onCreate(want: Want, launchParam: LaunchParam): Unit {    // ★ 这里的Want,就是"谁把我叫醒的"完整档案    //   桌面图标启动?通知点击?服务卡片?Deep Link?    //   答案全在want里,你得在这接住它  }}

Want在这个瞬间干两件正事:

  • 告诉你入口来源want.uriwant.bundleNamewant.parameters……不同启动路径塞进来的东西不一样,但都在这里

  • 给你一次机会做"启动分流":比如通知点进来要跳订单详情页,而不是每次都傻乎乎走默认首页

一个老工程师的直觉判断

如果你在onCreate()里写了超过20行代码,或者调用了任何带"IO/网络/数据库/open/connect"字样的东西——停下来,你已经越界了。这不是清教徒式的规矩,是Stage模型硬性契约:生命周期回调在主线程,onCreate卡住=启动卡住=白屏=customer drops off。


(2)onCreate()的"允许清单"vs"禁忌清单"——一句话就能救命

我把这个写成一张表,你可能直接截图存下来:

✅ 放onCreate里的(轻量、同步、只跑一次)

❌ 别放onCreate里的(会卡主线程or时机不对)

want里解包启动参数,存入一个启动上下文对象

网络请求 / HTTP初始化握手

初始化纯内存结构(空Map、状态容器骨架、配置对象)

打开数据库文件 / SharedPreferences全量读取

解析环境标识(dev/prod)、读取打包配置

加载大图 / 解码Assets / 解析大JSON

挂全局异常捕获桩、打冷启埋点起点

loadContent()——窗口都没建,你load给谁看?

初始化日志模块tag(轻量注册,不是写文件)

任何Thread.sleep/ 忙等待 / 自旋锁

注意最后一行那个"loadContent()"——这是最多新手踩的坑。onCreate里绝对不调用windowStage.loadContent,因为WindowStage压根还没出生。UI加载的正经位置是下一个回调:onWindowStageCreate()

那Want里的参数怎么流转?

正确姿势是一条管道:

纯文本

onCreate(want)  └─ 把 want 解包  存进 AppLaunchContext(一个纯数据结构)       (此时不做任何UI决策,只是"记账"onWindowStageCreate(windowStage)  └─ 读 AppLaunchContext  决定 loadContent("pages/xxx")       (窗口就绪了,才能挂画)

这个分离非常重要——它让你Ability的"壳逻辑"和"页面渲染"解耦,以后多入口(通知/卡片/深链)进来时,你只改AppLaunchContext→路由那段,不动生命周期骨架。


(3)仓颉工程里onCreate的真实长相——骨架代码

结合仓颉工程的实际目录习惯(entry/src/main/cangjie/下的ability_stage.cjmain_ability.cj),一个懂事的onCreate大概长这样:

cj

// main_ability.cjclass EntryAbility <: Ability {  // ---- 冷启态:Ability实例刚被系统new出来 ----  public override func onCreate(wantWantlaunchParamLaunchParam): Unit {    // 1. 埋点:冷启计时起点(轻量,纯CPU)    PerfTrace.markColdStartBegin()    // 2. 解包启动信封 —— 只做"读",不做"执行"    let entryRoute = want.getStringParam("entry_route") ?? "Home"    let pushPayload = want.getStringParam("push_payload") ?? ""    // 存入启动上下文(纯数据结构,不是全局变量满天飞)    AppLaunchCtx.set(route: entryRoute, payload: pushPayload)    // 3. 轻量日志桩    AppLog.i(TAG"Ability Create │ launchType=\(launchParam.launchReason)")    // ⚠️ 到此为止。重的东西?往下看。  }  // ---- 窗口舞台就位:这里才是UI世界的起点 ----  public override func onWindowStageCreate(windowStageWindowStage): Unit {    // 根据 onCreate 里记账的路由信息,决定首屏加载    let targetPage = AppLaunchCtx.route == "OrderDetail"      ? "pages/OrderDetail"      : "pages/Index"    windowStage.loadContent(targetPage)    // 可选:订阅窗口事件    AppLog.i(TAG"WindowStage created → loading \(targetPage)")  }  public override func onForeground(): Unit {    // 恢复:定位、播控、实时连接(轻量恢复,别重建大对象)    PerfTrace.markColdStartEnd("foreground")  }  public override func onBackground(): Unit {    // 暂停:播控、传感器;做一次轻量草稿存档    QuickSave.flush()  }  public override func onDestroy(): Unit {    // 最终清理:关连接、清回调桩    AppLog.i(TAG"Ability Destroy")  }}

你可能注意到一个细节:我没在onCreate里做任何异步等待。这不是因为我是个同步原教旨主义者,而是因为——

主线程生命周期回调不等你。onCreate返回之前,系统就在倒计时了。你要做的不是"把事做完",而是"把账记好,把轻量骨架立起来,重的让后台线程或懒加载去扛"。


二、为什么onCreate写坏的后果比你想象的大——从"慢一点"到"被系统杀"

(1)冷启曲线的真相:白屏=onCreate卡住的直接账单

用户感知的"启动速度"不只是你的业务代码快不快,而是从桌面icon click → 进程fork → Ability创建 → 窗口建好 → 第一帧画出这条链的总耗时。而onCreate()就卡在靠近最前面的位置。

华为官方文档明确说:

生命周期回调是在应用主线程执行,为了确保应用性能,建议在生命周期回调中仅执行必要的轻量级操作。对于耗时任务,推荐采用异步处理或交由子线程执行,避免阻塞主线程。

翻译成KPI语言就是:

  • onCreate里每多50ms同步阻塞 → 冷启白屏多50ms

  • 白屏超300~400ms → 用户大脑判定"这App有点迟钝"

  • 低端机后台回收策略更凶 → 你的App会更频繁走冷启路径 → 问题被放大而非稀释

一个我见过的真实翻车形态

某团队把"初始化推送SDK + 读本地配置JSON + 预warm HTTP连接池 + 顺手查了下本地DB版本号"全塞onCreate开头。测试机上看着挺好。上线后低端机(6×系列骁龙、4GB内存)冷启P95飙到900ms+,应用市场评分里"打开慢"的反馈突然冒头。

改法其实不难——

把推送SDK init改成异步懒加载(首帧之后触发);配置JSON预先打成轻量二进制bundle让读取变mmap;DB版本号检查挪到真正用DB的那个Feature模块去。onCreate瘦身完,冷启P95掉了将近40%。


(2)进阶:onCreate的兄弟——AbilityStage.onCreate(),全局初始化的正房位置

很多团队搞不清:Ability.onCreate()和 AbilityStage.onCreate()分别放什么?

一句话理清:

  • AbilityStage 是 Module级(HAP包级)的管家,整个模块首次加载时创建,早于任何Ability实例

  • Ability.onCreate() 是每个Ability实例的出生回调,可能多次(如果系统杀了又重建,或有多个Ability)

所以分工应该是:

放AbilityStage.onCreate()

放Ability.onCreate()

模块级日志系统tag注册

解析本次启动的Want参数

全局线程池/调度器骨架

启动路由分流判断

读一次build-time配置(环境/灰度开关)

Ability实例级状态骨架初始化

语言/深色模式监听桩

打Ability级冷启埋点

仓颉工程里对应的结构大致是:

cj

// ability_stage.cj —— 模块级,只跑一次class AppStage <: AbilityStage {  publicoverride func onCreate(): Unit {    AppLog.i(TAG, "AbilityStage onCreate (module init)")    // 全局轻量初始化  }}// main_ability.cj —— Ability实例级class EntryAbility <: Ability {  publicoverride func onCreate(want: Want, launchParam: LaunchParam): Unit {    // 只处理"这次启动"的事  }}

关键原则:AbilityStage.onCreate负责"舞台搭好",Ability.onCreate负责"这位演员穿什么戏服出场"(Want参数决定)。别让演员在化妆间就试图搬布景。


(3)商业语境:为什么现在抠这个细节——信创逼你从"能跑"到"敢上量"

说句实话:onCreate怎么写,单机Demo里永远不是问题。它变成问题的时刻,是你的App要装进千万级终端、走各厂商的功耗/后台管控策略、接受应用商店启动时长抽检的时候。

随着"纯血鸿蒙"(HarmonyOS NEXT)生态加速推进,应用性能基线只会越来越硬。"启动白屏/卡顿"不再只是UX瑕疵——在某些行业场景(金融交易入口、政务办事入口)它直接关联转化率与用户信任。

而仓颉语言在这里的价值主张,不只是"另一种语法写Ability"——它的静态编译属性 + 更可控的内存模型 + 更强的类型约束,能让你把"启动链路的状态分流"写成更安全的代数类型,而不是散落在全局可变字典里的一组if (want.params.xxx)。工行手机银行的部分模块(收支日历)已经在HarmonyOS NEXT应用市场上架了仓颉+ArkTS混合形态,说明这条启动链路是经历过产线检验的,不是PPT。


参考文献

[1] 华为. 仓颉编程语言官网[EB/OL]. https://cangjie-lang.cn/.(工行手机银行、京东等仓颉落地案例披露)

[2] 华为开发者官网. UIAbility组件生命周期[EB/OL]. (2026-06-12更新). https://developer.huawei.com/consumer/cn/doc/HarmonyOS-Guides/uiability-lifecycle

[3] 华为开发者官网. AbilityStage组件管理器[EB/OL]. (2026-03-26更新). https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/abilitystage

[4] 工业和信息化部. "十四五"软件和信息技术服务业发展规划[Z]. 北京: 电子工业出版社, 2021.


结束语:

onCreate()是整个Ability生命周期里最短、最早、也最容易被"善意填满"的回调。记住它的三条铁律——窗口未建不碰UI,主线程不阻塞,Want只记账不执行业务——你的鸿蒙冷启曲线会诚实回报你。壳管壳的出生,画管画的渲染,各司其职,App才扛得住量。

互动话题:

你们团队的冷启优化卡在哪一关?是SDK初始化链太长、DB打开慢、还是"祖传代码不知道谁往onCreate塞了啥"?留言说说你的排查思路👇 想看下期的话扣 「路由归一化」——我把上面那段AppLaunchCtx→loadContent的分流模板整理成一份可直接抄的仓颉文件结构,下周发出来。🚀

最新文章

随机文章

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