当前位置:首页>音效资源>Godot 动态资源加载与内存优化

Godot 动态资源加载与内存优化

  • 2026-06-25 10:32:04
Godot 动态资源加载与内存优化

在游戏开发中,场景切换卡顿、画面不动、加载无反馈、内存占用过高,是影响玩家游戏体验的核心问题。以上问题的核心原因,大多是资源加载方式选择不当、同步阻塞加载、资源未释放导致。

Godot 引擎提供了分层级的资源加载体系,针对不同大小、不同使用频率的资源,匹配对应的加载方案。下面将系统讲解基础加载API、异步后台加载、加载UI界面实现、资源缓存与内存管理,帮助开发者实现全程流畅、低卡顿、可控的游戏加载效果。

Godot 资源加载分层体系

Godot 所有资源(场景、纹理、音效、模型、配置文件等)的加载,遵循分层适配、按需加载的核心原则,根据资源体积和使用频率分为三类加载方案,是游戏性能优化的基础:

  • 小型高频资源:采用预加载模式,常驻内存、随取随用

  • 中型条件资源:采用运行时动态加载,按需调取、节省初始内存

  • 大型重型资源:采用后台异步加载,不阻塞主线程,搭配加载界面提升体验

基础资源加载:preload 与 load

preload() 和 load() 是 Godot 最基础的两个资源加载接口,二者核心差异为加载时机路径灵活性,是所有资源加载逻辑的基础,必须精准区分使用场景。

preload() 脚本预加载

preload() 为脚本解析阶段加载,当游戏加载脚本、解析代码时,就会提前将指定资源加载至内存。脚本初始化完成后,资源常驻内存,后续调用无任何加载延迟。

注意:GDScript 为解释型语言,并非编译型语言,行业内俗称的“编译时加载”本质是脚本解析阶段加载,不影响实际使用逻辑,仅用于原理理解。

适用场景

体积小、全局高频、每帧/频繁调用的资源,如子弹场景、普攻音效、通用UI组件等。

# 常量定义 + preload 预加载,路径必须为固定字符串字面量const BulletScene = preload("res://scenes/bullet.tscn")const HitSound = preload("res://audio/hit.wav")# 调用资源无延迟,直接实例化使用func shoot():    var bullet = BulletScene.instantiate()    add_child(bullet)    HitSound.play()

核心特性

  • 资源路径仅支持固定字符串字面量,不支持变量拼接

  • 脚本解析阶段一次性加载完成

  • 运行时调用零延迟、无磁盘IO

  • 自动进入引擎资源缓存

load() 运行时动态加载

load() 为游戏运行时加载,仅当代码执行到对应逻辑时,才会从磁盘读取资源或从缓存调取资源,支持动态拼接资源路径,灵活性极强。

适用场景

条件性加载、动态切换、体积偏大的资源,如玩家自选武器、难度适配敌人、专属关卡资源等。

# 动态加载武器资源(变量拼接路径)func load_weapon(weapon_nameString):    var scene_path = "res://weapons/%s.tscn" % weapon_name    var weapon_scene = load(scene_path)    return weapon_scene.instantiate()# 根据游戏难度动态切换敌人场景func get_enemy_scene(difficulty: int) -> PackedScene:    if difficulty >= 3:        return load("res://enemies/boss.tscn")    return load("res://enemies/normal.tscn")

核心特性

  • 支持变量动态拼接路径,适配动态资源逻辑

  • 首次调用读取磁盘,后续调用直接读取缓存,无重复IO

  • 加载时机可控,仅需要时加载,减少初始内存占用

两种加载方式对比

对比维度

preload()

load()

加载时机

脚本解析阶段

游戏运行时

路径规则

仅支持固定字面量字符串

支持变量动态拼接

阻塞行为

阻塞初始场景加载流程

阻塞当前帧运行

适用场景

小型、高频、全局通用资源

中型、条件性、动态资源

缓存机制

自动缓存

首次加载缓存,后续复用

过度使用 preload() 会大幅拖慢游戏初始启动和场景加载速度,大型纹理、3D模型、完整关卡场景严禁使用预加载。性能瓶颈核心来自资源总加载体积,而非加载次数。

ResourceLoader 异步加载 

普通 load() 为同步加载,加载大型资源时会阻塞主线程,导致游戏画面冻结、输入无响应。针对关卡场景、大型模型、海量纹理等重型资源,Godot 提供 ResourceLoader 多线程异步加载API,可在后台加载资源的同时,保证主线程正常渲染、运行逻辑。

异步加载核心流程

标准异步加载分为三个固定步骤,所有后台加载逻辑均遵循该流程:发起加载请求 → 逐帧监听加载进度 → 加载完成获取资源

核心API

API 方法

核心作用

load_threaded_request(path)

开启子线程,发起异步资源加载请求

load_threaded_get_status(path, progress)

获取当前加载状态与进度(0.0~1.0)

load_threaded_get(path)

加载完成后获取完整资源实例

加载状态枚举

load_threaded_get_status 会返回四种固定状态,用于精准处理加载逻辑与异常:

状态枚举

状态含义

THREAD_LOAD_IN_PROGRESS

资源加载中,可获取进度更新UI

THREAD_LOAD_LOADED

资源加载完成,可读取使用

THREAD_LOAD_FAILED

资源加载失败(文件损坏、资源缺失)

THREAD_LOAD_INVALID_RESOURCE

路径无效或未发起加载请求

基础异步加载代码实现

func _start_async_load():    # 1. 发起异步加载请求    ResourceLoader.load_threaded_request("res://levels/stage_2.tscn")# 2. 逐帧监听加载状态与进度func _process(_delta):    var progress = []    var status = ResourceLoader.load_threaded_get_status("res://levels/stage_2.tscn", progress)    match status:        ResourceLoader.THREAD_LOAD_IN_PROGRESS:            # 转换为百分比进度            print("当前加载进度:%d%%" % int(progress[0] * 100))        ResourceLoader.THREAD_LOAD_LOADED:            # 3. 加载完成,获取资源并执行后续逻辑            var scene = ResourceLoader.load_threaded_get("res://levels/stage_2.tscn")            _on_load_finish(scene)        ResourceLoader.THREAD_LOAD_FAILED:            printerr("资源加载失败!")        ResourceLoader.THREAD_LOAD_INVALID_RESOURCE:            printerr("资源路径无效,加载请求未发起!")# 加载完成回调func _on_load_finish(target_scene: PackedScene):    print("关卡加载完成!")

GDScript 不支持函数多返回值,因此 progress需要传入空数组作为输出参数,引擎会自动将0.0~1.0的进度值写入数组首位,是Godot官方标准写法。

子线程并行加载加速

大型场景包含大量子资源(纹理、网格、材质、音效等),默认串行加载速度较慢。通过开启 use_sub_threads 参数,可实现子资源并行加载,大幅缩短加载耗时。

# 开启子资源并行加载,第三个参数为 use_sub_threadsResourceLoader.load_threaded_request(    "res://levels/stage_2.tscn",    "",      # 空字符串:自动识别资源类型    true    # 开启子线程并行加载(默认false))

同一资源路径不可重复发起 load_threaded_request 请求,会触发引擎报错。多逻辑入口加载时,需先判断加载状态再发起请求。

实战开发:带进度条的加载界面

异步加载的核心落地场景是游戏加载界面。本节将实现进度条实时更新、百分比文字显示、加载失败提示、场景自动切换的完整加载UI组件。

组件设计规范

加载界面需挂载 CanvasLayer 节点,设置为自动加载单例(Autoload),保证场景切换时不被销毁,全程置顶显示。

// LoadingScreen.gdextends CanvasLayer# 绑定UI节点@onready var progress_bar: ProgressBar = $ProgressBar@onready var label: Label = $Label# 目标加载场景路径var target_scene_path: String = ""# 外部统一调用的加载入口func load_scene(scene_path: String):    target_scene_path = scene_path    # 显示加载界面    show()    # 开启逐帧更新    set_process(true)    # 发起异步加载请求    var load_err = ResourceLoader.load_threaded_request(scene_path, ""true)    if load_err != OK:        label.text = "加载启动失败!"        set_process(false)        return# 逐帧更新加载进度与UIfunc _process(_delta):    if target_scene_path.is_empty():        return    var progress = []    var status = ResourceLoader.load_threaded_get_status(target_scene_path, progress)    match status:        ResourceLoader.THREAD_LOAD_IN_PROGRESS:            # 更新进度条与文字            progress_bar.value = progress[0] * 100            label.text = "正在加载... %d%%" % int(progress[0] * 100)        ResourceLoader.THREAD_LOAD_LOADED:            # 加载完成,切换场景            progress_bar.value = 100            var target_scene = ResourceLoader.load_threaded_get(target_scene_path)            get_tree().change_scene_to_packed(target_scene)            # 重置状态、隐藏界面            target_scene_path = ""            set_process(false)            hide()        ResourceLoader.THREAD_LOAD_FAILED:            label.text = "资源加载失败,请重试!"            set_process(false)        ResourceLoader.THREAD_LOAD_INVALID_RESOURCE:            label.text = "资源路径无效!"            set_process(false)

组件使用

将该脚本挂载至 CanvasLayer 节点,在项目设置 → 自动加载中注册为全局单例,即可在项目任意脚本中调用:

# 任意位置调用,一键加载场景并显示进度LoadingScreen.load_scene("res://levels/stage_2.tscn")

必须设置为自动加载单例!若为普通场景节点,场景切换时节点会被销毁,导致加载逻辑中断、界面闪烁。

资源缓存与内存优化管理

合理加载资源是性能优化的第一步,合理释放资源、控制内存占用是大型游戏项目的核心优化要点。Godot 采用引用计数机制管理资源内存,无手动销毁接口,需通过引用控制实现内存回收。

Godot 资源缓存机制

引擎会以资源路径为唯一标识,自动缓存所有通过 load()preload()、异步加载获取的资源。同一路径重复加载,不会重复读取磁盘,直接返回内存中的缓存实例。

# 两次加载为同一个资源实例,无重复IOvar tex1 = load("res://textures/player.png")var tex2 = load("res://textures/player.png")print(tex1 == tex2) # 输出 true

引用计数与 WeakRef 弱缓存

Godot 所有资源继承自 Resource 类,依靠引用计数自动回收内存:变量引用资源时计数+1,引用销毁时计数-1,计数归0则资源立即从内存释放。

普通变量为强引用,会增加计数,阻止资源释放;WeakRef 弱引用不增加计数,可实现“可复用、可自动释放”的轻量化缓存。

# 弱引用资源缓存工具var _resource_cache: Dictionary = {}# 获取资源:有缓存复用,无缓存加载func get_cache_resource(res_path: String) -> Resource:    # 校验缓存是否存在且有效    if _resource_cache.has(res_path):        var weak_ref: WeakRef = _resource_cache[res_path]        var res = weak_ref.get_ref()        if res:            return res    # 重新加载资源并加入弱缓存    var new_res = load(res_path)    _resource_cache[res_path] = weakref(new_res)    return new_res# 清空缓存(仅清空引用,不强制销毁资源)func clear_all_cache():    _resource_cache.clear()

项目内存管理最佳实践

优化策略

具体执行方案

分级预加载

仅预加载全局通用小型资源,关卡专属资源禁用preload

关卡资源隔离

关卡切换时主动清空当前关卡专属资源引用,触发内存回收

弱引用缓存适配

临时复用、非常驻资源使用WeakRef缓存,平衡性能与内存

重型资源异步化

大型场景、模型、贴图全部使用多线程异步加载

总结

预加载 preload:脚本解析阶段加载,零运行延迟,仅适配小型高频资源,不可滥用。

动态加载 load:运行时加载,支持动态路径,适配中型、条件性资源,灵活度更高。

异步后台加载:通过 ResourceLoader 多线程加载,彻底解决主线程卡顿,开启子线程并行可提速。

加载界面:基于 CanvasLayer 全局单例实现,实时监听进度、适配场景切换。

内存管理:依托引用计数机制,通过 WeakRef 实现轻量化缓存,按需释放资源,避免内存溢出。

练习

  1. 为什么大型场景必须使用异步加载,不能使用普通 load() 同步加载?

  2. 独立改造加载界面,新增加载动画、加载超时提示功能。

  3. 使用 WeakRef 封装一套通用的项目资源缓存工具类。

最新文章

随机文章

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