当前位置:首页>Linux>硬核干货丨JAVA+Linux的内存优化实践

硬核干货丨JAVA+Linux的内存优化实践

  • 2026-06-30 08:31:30
硬核干货丨JAVA+Linux的内存优化实践

做后端开发的同学,或多或少都会遇到这样的场景:系统上线初期一切正常,运行几个月后,用户开始反馈页面加载缓慢、查询超时,甚至偶尔出现数据查不出来的情况。最近,我们的某个产品在现场就遇到了这个问题。经过远程排查,最终定位分析结果是JVM内存配置不合理以及垃圾回收器选型不当导致的。今天把整个排查和优化过程分享出来,希望对大家有所帮助。

01
问题现象

现场反馈的症状很典型:

1、系统运行数月后,页面操作明显卡顿;

2、部分查询请求超时,返回不了数据;

3、重启服务后短暂恢复,但过一段时间又会复现。

这种"渐进式劣化"的表现,经验告诉我们,大概率跟内存有关。

02
内存现状分析

远程登录服务器后,第一步先看整体内存使用情况。

结果:

总内存:15943 MB

已用内存:14767 MB

可用内存:仅 761 MB

内存使用率超过 90%

服务器内存已经非常紧张了。接下来用 top 命令看看是哪些进程在"吃"内存。

排在第一位的是我们的collector微服务(PID 4402),这个服务负责接收和处理日志数据,是整个系统中数据吞吐量最大的组件之一。接下来已这个为例,分析一下内存使用情况。

03
深入JVM内存分析
内存结构

首先我们需要熟悉一下java进程的内存组成,下面这张表列举了一个java进程所包含的主要内存结构:

内存区域

所属

-Xmx 限制

GC 可回收

关键控制参数

Eden 区

堆内存

可以

-Xmn, -XX:SurvivorRatio

Survivor 区

堆内存

可以

-XX:MaxTenuringThreshold

老年代

堆内存

可以

-Xmx

元空间

非堆内存

部分

-XX:MaxMetaspaceSize

代码缓存

非堆内存

-XX:ReservedCodeCacheSize

GC 开销内存

非堆内存

GC 算法自动分配

直接内存

进程其他

-XX:MaxDirectMemorySize

线程栈

进程其他

-Xss

JNI 本地分配

进程其他

JVM 参数可控

开启本地内存跟踪

根据上表,我们看一下实际的JVM内部内存分布,我们在collector服务的启动脚本中添加了 Native Memory Tracking 参数:

-XX:NativeMemoryTracking=summary

重启服务后,使用 jcmd 命令导出内存详情:

jcmd <PID> VM.native_memory summary >> /root/memory.txt

整理成表格展示:

内存区域

Reserved (MB)

Committed (MB)

说明

Java Heap

2560.00

2560.00

堆内存已完全分配

Class

1191.22

187.61

加载了27,430 个类

Thread

329.38

329.38

330 个线程

Code

256.35

73.03

JIT 编译代码缓存

GC

103.51

103.51

垃圾回收器专用内存

Internal

478.96

478.95

JVM 内部数据结构

Symbol

34.53

34.53

字符串表、常量池等

NMT

7.03

7.03

NMT 功能自身消耗

Compiler

1.49

1.49

编译器专用内存

Arena Chunk

1.85

1.85

内存分配块

总计

4964.32

3777.39

接下来我们重点看堆内存的使用情况。先手动触发一次 Full GC,清理掉可回收的对象:

jcmd <PID> GC.run

GC 后的堆内存使用情况:

jmap -head <PID>

整理成表格:

内存区域

已用

总容量

使用率

Eden 区

15.20 MB

763 MB

2.0%

From Survivor 区

0 MB

-

0%

To Survivor 区

0 MB

-

0%

新生代合计

≈ 15 MB

763 MB

2.0%

老年代

649.66 MB

1600 MB

40.6%

整体堆内存

≈ 665 MB

2560 MB

≈ 26%

关键发现

从这两张表中,我们可以提炼出几个关键信息:

Java Heap(2560 MB):堆内存是最大的内存消耗者。Reserved 等于 Committed,意味着JVM启动时就把堆内存全部申请了,没有任何弹性空间。这个配置对于一个日志收集服务来说,明显偏大。另外,我们给JVM分配了 2560 MB 的堆内存,但实际常规使用量只有 665 MB 左右。大量内存被占着却不适用,白白浪费了宝贵的系统资源。

Class(187.61 MB):加载了将近 2.7 万个类,占用了近 188 MB 的元空间。这个数字需要持续关注,如果类加载数量异常增长,可能存在类加载泄漏的风险。

Thread(329.38 MB):330 个线程占用了约 330 MB 内存,平均每个线程栈约 1 MB。这是JDK8的默认配置,属于正常范围。

Internal(478.96 MB):这部分包含JVM内部的数据结构、字符串表等。接近 479 MB 的占用偏高,可能意味着内部缓存或数据结构存在膨胀。

04
内存优化方案
堆内存调整

在JVM内存调优中,有一个经典的经验法则:在应用的常规峰值使用量基础上,预留一倍的缓冲空间。这个缓冲空间用于应对:

1、突发流量带来的临时内存增长

2、GC过程中的内存抖动

3、业务增长带来的潜在内存需求

根据上面的分析,collector 服务的常规峰值使用量约为 665 MB,按照一倍缓冲的原则:推荐堆内存 = 665 MB × 2 ≈ 1280 MB

将 JVM 堆内存从 2560 MB 调整为 1280 MB,既能保证服务稳定运行,又能释放出1280MB 的内存给其他进程使用。其他微服务也按照同样的方法进行分析和调整。

配置参数:

-Xms1280m -Xmx1280m

线程栈优化

线程栈内存是独立于堆内存(-Xmx)之外的,它直接占用操作系统的本地内存。这意味着线程越多,栈内存的总消耗就越大。

JDK 8 中默认值为 1 MB,回顾我们前面的分析,collector 服务有 330 个线程,占用了约 330 MB 内存——正好是每个线程 1 MB 的默认配置。

在微服务或高并发场景下,减小栈大小能显著降低单线程的内存开销,从而支撑更高的并发量。以我们的 collector 服务为例:

调整前:330 线程 × 1 MB = 330 MB

调整后:330 线程 × 256 KB = 82.5 MB

节省内存:约 247.5 MB

这将近 250 MB 的内存节省,对于一台内存使用率已经超过 90% 的服务器来说,是非常可观的。

什么情况下 256 KB 可能不够?

1、深度递归算法(如树的深度优先遍历、复杂的分治算法)

2、框架嵌套层级过深(如多层 AOP 代理、复杂的过滤器链)

3、大量局部变量的方法(尤其是包含大数组的局部变量)

配置参数:

-Xss256k

直接内存优化

直接内存(堆外内存)主要用于 NIO 的 ByteBuffer,在 Netty 等高性能网络框架中会被大量使用。它绑定在操作系统的本地内存上,不经过 JVM 堆,因此读写效率更高,常用于网络 I/O 和文件 I/O 场景。

在较新的 JDK 版本中,如果不显式设置 -XX:MaxDirectMemorySize 参数,JVM 默认会将其上限设置为与最大堆内存(-Xmx)相同。由于直接内存不受 GC 直接管理,JVM 不会主动回收这部分内存,最终可能迅速耗尽物理机内存,导致进程被操作系统直接 Kill 掉(OOM Killer)。更可怕的是,这种情况下进程是被操作系统强制杀死的,不会留下 Java 层面的异常堆栈,排查起来非常困难。

显式设置为 256m 或 512m 是一个很好的防御性编程习惯:

-XX:MaxDirectMemorySize=256m

Netty 内存优化

如果你的项目使用了 Netty(Spring WebFlux、gRPC、Dubbo 等底层都依赖 Netty),那么除了 JVM 层面的参数,Netty 自身的内存分配策略也值得关注。

1、Page 是 Netty 内存池中最小的分配单元,所有的内存申请都会以 Page 为基本粒度进行。

Netty 默认的 Page 大小是 8 KB,将 pageSize 下调至 4096(4 KB)可以减少系统层面的内存管理开销,减少产生碎片。

配置方式:

-Dio.netty.allocator.pageSize=4096

2、Chunk 是 Netty 内存池中的基本大块单元。

在较老的 Netty 版本中,maxOrder 默认是 11。如果 pageSize 是 8 KB,那么一个 Chunk 高达:8KB × 2^11 = 16 MB

在较新的 Netty 版本(如 4.1.x 后期版本)中,maxOrder 的默认值已经调整为 9。显式指定 maxOrder=9 并配合 pageSize=4096,意味着单个 Chunk 的大小被控制在:

4KB × 2^9 = 4096 × 512 = 2MB

配置方式:

-Dio.netty.allocator.maxOrder=9

05
垃圾回收器优化方案
问题发现

内存调整只是第一步。我们继续用 jstat 观察垃圾回收情况:

jstat -gc <PID> 1000

每秒打印一次 GC 统计信息,发现了严重的问题:

1、Full GC 周期极短:仅仅 10-20 秒就触发一次 Full GC

2、停顿严重:每次 Full GC 都会导致应用暂停约 1 秒

这就解释了为什么用户会感觉到页面卡顿——每隔十几秒,服务就要"停下来"做一次大扫除,在这期间所有请求都得排队等着。

问题根因

项目使用的是 JDK 8,默认的垃圾回收器是 Parallel GC。Parallel GC 的设计目标是追求吞吐量最大化,它会在 GC 时暂停所有应用线程(Stop-The-World),集中力量快速完成垃圾回收。

这种策略适合批处理任务,但对于微服务架构来说就不太合适了。微服务强调的是快速响应,用户不会接受"每隔十几秒卡一下"的体验。

切换到G1垃圾回收器

综合考虑项目的微服务特性,我们决定将垃圾回收器更换为 G1(Garbage First)。

为什么选择 G1?

1、G1 支持设定最大停顿时间目标。我们可以告诉 G1:"每次 GC 停顿不要超过 200 毫秒",G1 会尽力在这个时间预算内完成回收工作。

2、G1 采用了全新的内存布局。它将堆内存划分为很多大小相等的小区块(Region),每次 GC 时优先回收垃圾最多的区块——这也是"Garbage First"名字的由来。通过这种方式,G1 可以在有限的时间内回收尽可能多的垃圾,避免了传统收集器那种"要么不做,要做就全做"的尴尬。

配置方式

在启动脚本中添加以下参数:

-XX:+UseG1GC -XX:MaxGCPauseMillis=200

参数说明:

-XX:+UseG1GC:启用 G1 垃圾回收器

-XX:MaxGCPauseMillis=200:设定最大 GC 停顿时间目标为 200 毫秒

06
优化效果与总结

经过上述优化后:

1、内存使用率从 90% 以上降到了合理范围,系统有了充足的内存余量

2、GC 停顿时间从每次约 1 秒降低到 200 毫秒以内,用户几乎感知不到

3、页面响应速度明显提升,查询超时的问题不再出现

完整的启动参数汇总

结合前面所有的优化,完整的启动参数建议如下:

-Xms1280m -Xmx1280m -Xss256k -XX:MaxDirectMemorySize=256m -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -Dio.netty.allocator.pageSize=4096 -Dio.netty.allocator.maxOrder=9

各参数的作用一目了然:

参数

作用

-Xms1280m -Xmx1280m

堆内存固定为1280 MB,避免动态扩缩容开销

-Xss256k

线程栈缩小至256 KB,支撑更高并发

-XX:MaxDirectMemorySize=256m

限制堆外内存上限,防止泄漏拖垮系统

-XX:+UseG1GC

使用G1 垃圾回收器,降低停顿时间

-XX:MaxGCPauseMillis=200

GC 最大停顿目标 200 毫秒

-Dio.netty.allocator.pageSize=4096

Netty 内存页缩小至 4 KB,减少小包碎片

-Dio.netty.allocator.maxOrder=9

Chunk大小控制为 2 MB,加速内存回收

几点经验教训

1、不要盲目给大内存。 很多人觉得内存越大越好,实际上过大的堆内存会导致 GC 时间变长,反而影响性能。合理的做法是根据实际使用量来配置。

2、垃圾回收器要匹配业务场景。 追求吞吐量用 Parallel GC,追求低延迟用 G1 或 ZGC。微服务场景下,响应时间通常比吞吐量更重要。

3、定期关注 JVM 运行状态。 不要等到用户投诉了才去排查。建议在生产环境中配置 JVM 监控,关注堆内存使用率、GC 频率和停顿时间等关键指标。

希望这次分享对大家有所帮助。内存优化不是一蹴而就的事情,需要结合具体的业务场景和运行数据来做决策。如果你的项目也遇到了类似的问题,不妨按照这个思路排查一下。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-03 17:58:52 HTTP/2.0 GET : https://f.mffb.com.cn/a/493315.html
  2. 运行时间 : 0.119153s [ 吞吐率:8.39req/s ] 内存消耗:4,877.02kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=2eddffb62dc2ed3012364d83d47462ec
  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.000690s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000692s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000354s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000278s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000480s ]
  6. SELECT * FROM `set` [ RunTime:0.009565s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000963s ]
  8. SELECT * FROM `article` WHERE `id` = 493315 LIMIT 1 [ RunTime:0.005726s ]
  9. UPDATE `article` SET `lasttime` = 1783072732 WHERE `id` = 493315 [ RunTime:0.017290s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.000427s ]
  11. SELECT * FROM `article` WHERE `id` < 493315 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000578s ]
  12. SELECT * FROM `article` WHERE `id` > 493315 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000643s ]
  13. SELECT * FROM `article` WHERE `id` < 493315 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000849s ]
  14. SELECT * FROM `article` WHERE `id` < 493315 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.006857s ]
  15. SELECT * FROM `article` WHERE `id` < 493315 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.006875s ]
0.120931s