乐于分享
好东西不私藏

用AI开发音视频通信程序踩坑记

用AI开发音视频通信程序踩坑记

这几天我使用 AI 高强度的来编程,用 AI 开发一个实时音视频通信程序。

不是写个 Hello World,不是做个 TodoList,是实打实的音视频通信。采集、编码、传输、解码、播放,整条链路全让 AI 来。

目的很单纯,两个。一是练习怎么用 AI 更好地开发,二是想看看在这种复杂场景下,AI 编程到底会踩多少坑。

坦率的讲,开始前我觉得还行。iroh-live 这个项目摆在那里,Rust 写的,基于 QUIC 和 MoQ 协议,架构清晰,文档齐全。AI 读一下代码,应该能很快上手吧。

结果呢。

几乎每一块都出了问题。音视频采集,编码,传输,解码,播放,没有一个顺的。

当时我就有点懵了。代码看着没问题啊,API 调用也没错啊,为啥就是跑不通呢?

让 AI 分析原因,AI 也能给出一堆理由。换个参数,加段错误处理,调整一下线程模型。改完试一下,不行。再让 AI 分析,再改,再试。

循环往复。

改了十几轮之后,我突然意识到一个问题。AI 每次分析,其实都是在猜。

它没有经历过这个程序在 macOS 上跑不通的过程,没有听过 CoreAudio 报错是什么样的,没见过 AVFoundation 返回的帧格式跟预期不一样是什么情况。它只是根据代码和错误信息,在庞大的训练数据里找最像的答案。

猜对了一次两次可以,猜多了,代码就变得异常复杂。各种 fallback,各种条件分支。最后代码能编译通过,但就是不能正常工作。

这就是我今天最想说的一个点。

如果你不了解相关技术,只要程序一报错就让 AI 去分析解决,AI 很可能越改越乱。因为你没法给它足够的上下文,它只能靠猜。而猜问题的代价,是代码越来越复杂,问题依然没解决。

那怎么办?

我自己摸索出了一个思路。先花几天时间,老老实实把相关技术学一遍,搞清楚整体架构和关键细节。然后再用 AI 解决问题的时候,给它足够的上下文。

先学架构:iroh-live 是怎么组织音视频管道的

这次我就花了几天时间,把 iroh-live 这个项目从头到尾扒了一遍。

这个项目三层架构,挺清晰的。最上面是 iroh-live,负责会话管理、信令和连接。中间是 moq-media,做媒体管道,捕获、编码、解码、自适应比特率、播放时序都在这块。最下面是 iroh-moq,基于 QUIC 的传输层。再往下还有 rusty-codecs 负责编解码器,rusty-capture 负责跨平台媒体捕获。

数据流从捕获源开始,经过编码器管道,变成 MoQ 包,通过 QUIC 传输,到对端再解码,最后渲染出来。

看着简单对吧。真动手的时候,每一层都有坑。

视频采集:每个平台的实现方式完全不同

先说视频采集这块。

macOS 上用 AVFoundation,Linux 上用 V4L2 或者 PipeWire,Windows 上有 DirectShow,Android 更特殊,用的是 Java 层的 CameraX 通过 JNI 推帧到 Rust。每个平台的实现方式完全不同。

平台
采集方案
说明
macOS
AVFoundation
Rust 原生调用
Linux
V4L2 / PipeWire
依赖系统多媒体框架
Windows
DirectShow
传统 Windows 视频接口
Android
CameraX + JNI
Java 层捕获 NV12 帧,推送到 Rust 层

AI 写代码的时候,经常默认你用的是某个平台的方式。比如它可能直接调CameraCapturer::new(),觉得这就能获取摄像头画面。但在 Android 上,这个类根本不存在,实际用的是 JNI 桥接方案。Java 层用 CameraX 捕获 NV12 格式的帧,通过 JNI 推到 Rust 层的CameraFrameSource里,再由编码器拉取。

这种平台差异,AI 不查代码是不可能知道的。就算查了代码,它也不一定理解为什么这么设计。

Android 为什么要走 JNI 而不是纯 Rust?因为摄像头权限请求必须在 Activity 主线程里做,摄像头生命周期要跟 Activity 绑定,纯 Rust 搞不定。

这些背景知识,不在代码里。在你了解它们之前,AI 永远想不到你需要考虑这些东西。

音频管线:听起来简单,背后全是坑

再说音频。

音频采集用的是 cpal 这个跨平台音频库。听起来很简单,创建 AudioBackend,获取输入流,设置到广播就行。

但背后的东西多着呢。

cpal 在不同平台上对应不同的后端。macOS 是 CoreAudio,Linux 是 ALSA 或者 PipeWire,Windows 是 WASAPI,Android 是 Oboe。采样率、通道数、数据格式,每个平台都可能不一样。

iroh-live 里面做了很多统一处理。设备采回来的音频,先在回调线程里做通道映射,单声道变立体声。然后用 sonora 库做 AEC 回声消除。再经过 fixed_resample 重采样到统一的 48kHz。最后才分发给用户的 InputStream。

这里有个很关键的线程模型:

  • • 调用者线程:在 tokio 任务里创建流、读取音频
  • • 驱动线程:独立运行,管理 cpal 流的生命周期和设备切换
  • • cpal 回调线程:实时线程,里面不能有内存分配,不能用锁

AI 写代码的时候,如果不知道这个实时线程的限制,可能会在回调里塞一堆动态分配的操作。编译能通过,运行时直接卡死或者爆内存。

还有 AEC 的处理流程也挺有意思。输出回调把播放的音频写入 render_ref_prod,输入回调从 render_ref_cons 读取渲染参考,然后用 sonora 做回声消除。也就是说,你自己的扬声器播放的声音,也会被处理掉,避免回传给对方。

这种设计细节,你不读代码根本不知道。AI 不读代码更不可能知道。

编码和解码:专用线程、渲染后端

编码和解码这块也一样。

视频编码器支持 H.264、AV1,有软件编码也有硬件加速。macOS 用 VideoToolbox,Linux 用 VAAPI,树莓派用 V4L2。音频用 Opus。

编码管道跑在专用 OS 线程上,不是 tokio 任务。因为编码器需要稳定的低延迟执行环境,async/await 在那种高频实时场景下反而不合适。

解码管道也是类似的思路。解码后的视频帧经过 FramePacer 控制播放节奏,基于 PTS 保证音视频同步。渲染可以用 wgpu 做零拷贝,也可以用 OpenGL ES 2.0,实在不行还能走 CPU 回退拿到 rgba\image。

每次 AI 给我一段代码,我都得自己判断它有没有考虑到这些细节。

有了上下文之后,AI 才真正开始好用

那学了几天之后,我用 AI 开发的状态发生了什么变化?

最大的变化是,我给 AI 的上下文变多了。

以前报错的时候,我只能把错误信息扔给 AI,说"帮我看看怎么回事"。AI 只能猜。

现在我会说,音频采集在 Android 上用 Oboe 库,采样率 48kHz,通道数 2,声音在安卓上没有播放。你看看这里哪里有问题。

效果完全不一样。

有了这些上下文,AI 的分析准确率高了很多。因为它不用再猜测平台差异,不用再猜测线程模型,不用再猜测数据格式。它只需要在已有的框架里找那个具体的 bug。

说白了,AI 不是一个能凭空理解你系统的魔法。它是一个很强的代码生成和调试助手,但前提是你得告诉它这个系统是怎么工作的。

你告诉它的上下文越精确,它帮你解决问题的效率就越高。你什么都不说,只丢错误信息,它就只能靠猜。而猜这个问题的成本,是代码会越来越复杂,复杂度还会反过来让你更难理解问题到底在哪。

这是个恶性循环。

用 AI 开发复杂项目,学习成本省不掉

所以我这几天的结论是,用 AI 开发复杂项目,学习成本省不掉。

你可以让 AI 帮你读代码、总结架构、解释某个函数做了什么。但你自己的脑子里必须有一个整体的图景。知道数据从哪来到哪去,知道每个环节的平台差异,知道哪些地方容易踩坑。

有了这个图景,AI 才是你的加速器。没有这个图景,AI 就是你的拖延症。你以为让它改改就能好,结果越改越乱,最后还得你自己从头看代码。

回到音视频开发这个事儿。

整个程序的架构并不复杂。采集、编码、传输、解码、播放,五个环节。但每个环节背后都是大量的工程细节。

采集环节,不同平台用完全不同的 API 和数据结构。编码环节,硬件加速和软件编码的切换、帧率控制、码率调节。传输环节,QUIC 的流管理、MoQ 的 group 和 track 机制、丢包和乱序处理。解码环节,解码器状态管理、帧缓冲、音视频同步时钟。播放环节,渲染后端的适配、帧间隔控制、音量调节。

任何一个环节出问题,都可能是多层原因叠加。网络抖动导致丢包,丢包导致解码器状态异常,解码器异常导致渲染黑屏。如果你只看渲染层,永远找不到根因。

所以学习整体架构这件事,不是可选项,是必选项。

当然,我也不是说要先把所有技术都学精通了再用 AI。那太慢了,也没必要。

我的做法是,先用 AI 辅助学习。让它帮你梳理架构,解释概念,总结代码。然后自己带着问题去看源码,验证它的总结对不对。遇到不理解的地方,再让 AI 解释。

这样来回几次,你对整个系统的理解就会越来越深。等到真正写代码、修 bug 的时候,你就能给 AI 提供足够精确的上下文,让它发挥真正的价值。

最近在尝试用 AI 做一件本来觉得自己搞不定的事。踩了不少坑,也学到了一些东西。

以前我们觉得,会写代码就行。现在 AI 能帮你写大部分代码了。但 AI 写代码的前提是,你知道要让 AI 写什么,知道写出来的代码应该长什么样,知道出了问题该怎么定位。

这些能力,AI 暂时替代不了。

所以别怕花时间学基础。你花在理解系统上的每一分钟,都会在后面以十倍的速度赚回来。

因为我这几天真的感受到了。当你理解了整个音视频管道的运作方式之后,再看 AI 给出的代码,哪些是对的,哪些是瞎搞的,一眼就能看出来。

而看不懂的时候,你连让 AI 往哪个方向改都不知道。

那时候 AI 不是在帮你开发,是在替你焦虑。

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