当前位置:首页>java>聊一聊 Rust 编程语言 2026年01月

聊一聊 Rust 编程语言 2026年01月

  • 2026-01-27 23:11:46
聊一聊 Rust 编程语言 2026年01月

每月博客的时间间隔越拖越长,儿子笑话我,要不你改季刊好了。

真是个好主意!

我自己倒也没那么纠结,在我看来,生活是有自己的节奏的,每段时间都有每段时间的重点,写作虽然偶尔会中断一下,但也总会继续。就像我的锻炼一样。顺着生活的节奏,既能把事情处理好,也感到充实又自在,完全不需要给自己强加一些不必要的压力。

进入正题,今天来聊一聊 Rust 编程语言,现在可是采用 Rust 语言的好时机。

我是一名程序员,Rust 对我而言一直有着很强的吸引力:C 级别的性能+内存占用,没有GC,高级语言般的表达能力,多编程范式的使用,优秀、统一的工具链,强大的编译器……每一个细节,都透露出对编程语言的深刻理解,充满智慧的平衡取舍,简直就是这个世界上最完美的编程语言。

完美的东西,通常有着不小的代价,那就是 Rust 的上手曲线非常陡峭,非常陡峭。通常认为,对于一个经验丰富的程序员,大概需要 3-6 个月才能熟练使用 Rust。但现在不一样了,现在 AI 很强,而且很擅长 Rust,可以写出高质量的代码,也可以帮助自己快速学习,更快掌握 Rust 语言。

接下来从几个方面来聊一聊 Rust:

  1. 工程管理 & 工具链

  2. 多范式编程语言

  3. 内存 & 并发

  4. 一小细节:错误处理

  5. 现在是采用 Rust 的好时机

工程管理 & 工具链

计算机底层处理的是 0 和 1,我们对不同 0 和 1 的组合进行编码,让计算机执行,就有了程序。但人脑能够处理的复杂度是有限的,太多 0 和 1 我们就分不清楚了。所以我们就给 0 和 1  的不同组合赋予指令编码,就有了汇编语言。但汇编语言还是太麻烦,而且和硬件强相关,于是就有了 C 语言。我们用计算机处理的问题越来越复杂,针对不同类型的问题,就有了越来越多新的编程语言。

如果只是处理个 add(a, b),那显然 C 语言足够了,汇编也是能接受。我们可以把代码放到一个文件中。随着项目逐渐扩大,有好几百行,放到单一的文件中,浏览起来就会变的比较麻烦,也容易不小心动到不相关的代码。这时候就适合将内容拆分,放到不同的文件中。如果有了几千行,几万行,就得用模块组织起来,否则人脑就处理不了这个复杂度了。

现代的软件项目更是超级复杂,全世界的人一起协作,一个客户端程序,很容易依赖几十,甚至上百个外部模块。如果你了解前端开发,一定知道 npm 的依赖地狱,单就管理外部依赖,已经成为了一件复杂度极高的事情。

说了这么多,其实是想说,一门编程语言要真正能撑的起大型项目,必须得有相应的软件工程管理的方法,以及配套的工具。Rust 官方提供了完善的包管理方法,以及相应的工具链。这会让你在软件工程方面节省大量的时间:一方面是工具本身非常好用,另一方面是你省去了去对比各种工具的大量时间。

  • 工具链管理工具:rustup

  • 包管理工具:cargo

  • 代码格式化工具:rustfmt

  • 编译器:rustc

  • 文档管理:cargo doc

  • 测试工具:cargo test

多范式编程语言

我们这一代程序员(80)大多是从面向对象编程(OOP)一路走来,设计模式也是最常见的面试内容。OOP 相对于命令式编程,解决了一些问题,但也引入了一些新的问题,比如:

"The problem with object-oriented languages is they’ve got all this implicit environment that they carry around with them. You wanted a banana but what you got was a gorilla holding the banana and the entire jungle."

(面向对象语言的问题在于,它们随身携带了所有的隐含环境。你想要的只是一个香蕉,但你得到的是一只拿着香蕉的大猩猩,以及整个丛林。)

Joe Armstrong

另外一个经典的问题就是组合 vs 继承。稍微多了解一点编程知识,都知道一个 OOP 的一个设计原则:组合优于继承。但观察实际的情况,大家是真爱写继承啊,整个思维都是跟着继承走的。

OOP 当然有其优点,但想要把一切都装进 OOP,那是很遭罪的。只有不受 OOP 的思想束缚,写代码的时候才能真正通过编程语言,灵活的表达自己的想法。比如组合优于继承这种事,做起来就容易多了。

新的现代通用型编程语言,自然也都注意到了这些问题,Kotlin、Go、Swift、Rust 等等都不再以 OOP 为主打,而是非常务实的,融合不同编程语言范式的优点进行设计。

那就语法而言,怎样才算是一门好的编程语言呢?在我看来,其中一个很重要的方面,就是代码的可读性好不好。代码的可读性好不好,其中一个方面,就得看功能逻辑和异常逻辑代码的比例。

相信写过 Java 语言的人都不喜欢搞异常处理,try-catch-finally 那真是又臭又长,要把异常处理好,一屏幕的代码,有一半都得留给异常处理。这样显然会非常影响你阅读和理解真正的功能部分的代码,降低了可读性。

所以写脚本语言非常爽,一大原因就是基本不考虑异常,只把核心逻辑写下来就行。当然代价就是线上运行经常会出奇怪的问题,查起来很头痛。

Rust 在这方面做的非常好,通过一些巧妙的处理方式,既能确保异常被合理的处理,同时保持异常处理部分的代码非常简洁。后面会详细的讲一讲。

内存 & 并发

高性能的编程,内存的使用是一件麻烦的事情,产生了很多运行时的问题。手动管理内存,虽然高效,占用内存低,但运行时的各种内存问题令人头痛不已,内存泄露,越界,以及各种指针问题。自动管理内存通常需要依赖 GC,有着较大的运行时,需要用到更多的内存,而且还容易因为 GC 引起卡顿,而且依然会有内存泄露的问题。

Rust 通过所有权机制来解决这个问题。原理其实也不复杂,就是通过所有权限制了同一时间,只能有一个 Owner 持有对象,也只能有一个持有者可以修改对象。其他人要用都是“借用”。借用也有规则限制:要么同时有多个不可变借用(只读),要么只能有一个可变借用(读写)。也就是说,只要你拿到这个对象的可变借用,你就可以放心的改,不用担心影响到其他地方。只要 Owner 超出其作用域,内存就会被释放,这确保了内存被释放且只被释放一次。

同样在所有权的基础上,在并发的场景,数据的保护也是这个思路。Rust 鼓励优先在进程间传递数据,而不是共享数据。如果实在需要共享数据,也通过规则的强约束,实现安全的共享内存,避免了数据竞争。

和其他编程语言不同的地方在于,其他编程语言通常是给出方法和技巧,由程序员来控制。Rust 则是通过编译器来确保这些方法的使用。因此,只要能通过编译,你就会感到非常的安心:稳了!

虽然这些基础规则看起来比较简单,但真正要应用起来,会有许多延伸规则,就会变的复杂起来,因此很多 Rust 新手的必经之路,就是和编译器搏斗。在搏斗过程中,逐渐掌握 Rust 的使用方法。

Rust 内存占用有多低呢?我很早以前,使用了 Rocket 框架,写了一个非常简单的 API 服务器,使用 Sqlite 数据库,整个整个服务也就不到 5MB 的内存。对于 Java 语言,这是不可想象的。

一小细节:错误处理

现代的新语言,大多都很务实,Rust 也是。所谓的务实,就是不追求理想化,而是直面实际的问题,并给出深思熟虑的解决方案。

相对而言,比如函数式编程语言,在我看来就是一种偏理想的编程语言。希望通过函数式这种优美的编程方式,去解决所有的问题。在这里只是作为举例对比,并不是否定偏理想的编程语言,函数式编程自然有其可取之处,也有其适用的场景,Rust 语言中也包含了函数式编程的范式。而且正是这些语言的极限探索,才推动编程语言的良性发展。

回头继续来讲 Rust 语言务实的一面,只举一个很小的例子,那就是错误处理。在我看来,很少有其他语言能够像 Rust 语言这样,把错误处理做到了如此的程度。

Rust 语言中,如果一个方法有可能出错,则必须将返回结果声明为 Result<T,E>。这种处理方式有多种好处。一是性能好,错误直接是一个值的返回,相比而言 java 异常需要捕获调用栈,有不少额外开销。更重要的是,这种显式的方式,要求你必须处理错误,而不能假装看不见。

在大多数语言中,处理异常的方式是 try-catch,有多难受相信不用我再说了。而 Rust 语言精心设计了错误的处理,针对不同的错误处理方式都提供了便利的语法,让错误处理变的非常优雅,且不会被漏掉:

  • 最基本的当然就是不想处理,直接 unwrap 就好了。

    • 这种情况下,如果出现了异常,程序就会崩溃。虽然这是偷懒的做法,但它是显式的,你不会遇到藏在哪里找不到的错误。

    • 也可以使用 expect,出错时依然会崩溃,但会附带上 expect 中的错误信息。

  • 要想完整的处理成功和错误的结果,就可以通过 match 语法,优雅的处理两个分支情况。再也不要 try-catch 了!

  • 有时想忽略错误,那就 unwrap_or,返回一个默认值。

  • 如果想把错误抛给上层处理,那就使用 ? 传递错误。当一段代码中有好些环节都可能出异常问题,使用 ? 传递错误,代码读起来简直超级优雅。而且你还可以使用 with_context(第三方库) 给每个异常附上额外的信息。

经过这样的仔细设计,错误处理在 Rust 中变得非常直观。

优雅!

现在是采用  Rust 的好时机

Rust 语言,难就难在上手,务实的设计的确考虑到了问题的方方面面,但同样意味着程序员也需要去理解和掌握这些方法。这不是一门适合入门新手的编程语言,即使是编程老手,也需要不少的上手时间。通常推荐的方法是先读一遍 《The Rust Programming Language》,然后在和 Rust 的编译器的搏斗中积累经验。

但现在有了大语言模型,上手 Rust 的难度大大降低了。

现在几乎所有的大语言模型都非常擅长写 Rust,因为大量开源 Rust 代码仓库的质量都非常高,都是大模型的优质语料。一方面是因为能写 Rust 的通常都是经验丰富的程序员,另一方面是编译器就限制了你很难写出低质量的代码。

所以现在上手 Rust 大概可以是这样的流程:

  • 先读一遍《The Rust Programming Language》,这依然是省不了的。

    • 中文版叫《Rust权威指南》,当前是第二版。

  • 了解 Rust 相关的工具链。

  • 描述你的需求,让 AI 和 Rust 的编译器搏斗。

  • 在 AI 的辅助下读懂 AI 写的代码,根据自己的需要做微调。

    • 读代码比写代码的难度,可是低多了。

你看,AI 不够可靠,但 Rust 的编译器够可靠,Rust 非常复杂,但 AI 不怕复杂。

这简直就是新时代完美的编程方式!

没有银弹

在我心中 Rust 是一门非常完美的语言,但不同的场景使用不同的工具才是理性人的选择。比如分析数据,Python + Notebook 拥有着无法被撼动的地位;开发 iOS App,现在就得用 Swift;开发 Android App, 现在就得用 kotlin。

Rust 也有其适用的领域,最常见的比如系统编程,嵌入式编程,wasm。随着使用 rust 的人变多,现在 rust 的适用领域也在逐渐拓展,比如高效的服务端程序,新的编程 IDE zed 也是纯 rust 开发的,性能都非常好。

小结

一门编程语言,涉及到的方方面面是非常多的,一篇小短文能介绍的东西非常有限。但我希望能在这篇小短文中,稍稍展示一下 Rust 的优点,能够引发一点你对 Rust 的兴趣,足矣。

Thanks for reading~

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-02-08 14:13:36 HTTP/2.0 GET : https://f.mffb.com.cn/a/464944.html
  2. 运行时间 : 0.097478s [ 吞吐率:10.26req/s ] 内存消耗:4,452.14kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=389e7e3b87107baac66ab5f744211f68
  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.000657s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000815s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000303s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000292s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000508s ]
  6. SELECT * FROM `set` [ RunTime:0.000215s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000586s ]
  8. SELECT * FROM `article` WHERE `id` = 464944 LIMIT 1 [ RunTime:0.000412s ]
  9. UPDATE `article` SET `lasttime` = 1770531216 WHERE `id` = 464944 [ RunTime:0.009371s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 65 LIMIT 1 [ RunTime:0.000269s ]
  11. SELECT * FROM `article` WHERE `id` < 464944 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000501s ]
  12. SELECT * FROM `article` WHERE `id` > 464944 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.004000s ]
  13. SELECT * FROM `article` WHERE `id` < 464944 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.006790s ]
  14. SELECT * FROM `article` WHERE `id` < 464944 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.005743s ]
  15. SELECT * FROM `article` WHERE `id` < 464944 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.001230s ]
0.099233s