当前位置:首页>Linux>Linux内存存取深度解析

Linux内存存取深度解析

  • 2026-03-22 21:38:51
Linux内存存取深度解析

内存存取是Linux系统运行的核心底层能力,直接决定了程序的性能、稳定性与资源利用率。Linux 6.6作为一款兼顾服务器、嵌入式设备的主流内核版本,在继承传统内存管理机制的基础上,对内存分配效率、缓存优化等方面进行了诸多打磨。本文将结合经典内存存取知识点,聚焦Linux 6.6内核,从用户空间与内核空间两个维度,拆解内存动态申请、释放的核心逻辑,搭配实操代码与内核特性优化,帮你彻底搞懂Linux内存存取的底层原理与实践技巧。

一、用户空间内存存取:高效申请与二次管理

用户空间的内存存取主要依赖C库提供的封装函数,核心目标是兼顾易用性与效率,避免频繁陷入内核态带来的性能开销。Linux 6.6内核下,用户空间内存动态申请的核心逻辑未发生本质变化,但C库的malloc算法经过优化,进一步降低了锁竞争,提升了多线程场景下的分配效率。

1. 核心函数:malloc()与free()的底层逻辑

用户空间动态申请内存的核心函数是malloc(),释放内存则使用free(),这两个函数在所有操作系统上的接口保持一致,保证了程序的可移植性。对于Linux 6.6内核而言,C库中的malloc()函数底层依然依赖brk()和mmap()两个系统调用来向内核申请内存,但通过二次管理机制,减少了系统调用的频次。

关键细节:malloc()并非每次申请内存都会触发内核调用——C库会将从内核申请到的内存进行二次管理,当程序释放内存时(调用free()),内存未必会立即归还给内核,而是被C库的分配算法缓存起来,供后续程序再次申请时直接使用,全程在用户态完成,大幅提升效率。

2. 关键优化:mallopt()的配置与按需调页机制

在Linux 6.6中,通过mallopt()函数可以配置malloc的内存管理策略,常见场景是禁止内存归还给内核,强制所有内存申请/释放都在用户态完成,尤其适合实时性要求较高的程序。以下是适配Linux 6.6的优化版本(补充页大小获取逻辑,避免兼容性问题):

#include<malloc.h>#include<sys/mman.h>#include<unistd.h>  // 补充Linux 6.6下页大小获取的头文件#define SOMESIZE (100*1024*1024)      // 100MB#define page_size sysconf(_SC_PAGE_SIZE)  // 适配不同架构,获取系统页大小intmain(int argc, char *argv[]){unsignedchar *buffer;int i;// 锁定当前和未来的内存页,防止被交换到磁盘(实时场景必备)if (mlockall(MCL_CURRENT | MCL_FUTURE))        mallopt(M_TRIM_THRESHOLD, -1);  // 禁止内存修剪,不归还内核    mallopt(M_MMAP_MAX, 0);  // 禁止使用mmap()申请内存,统一用brk()    buffer = malloc(SOMESIZE);if (!buffer)exit(-1);/*     * 触摸每一页内存,触发页错误,让内核真正分配物理内存     * Linux 6.6按需调页机制:malloc返回时仅分配虚拟地址,未分配物理内存     */for (i = 0; i < SOMESIZE; i += page_size)        buffer[i] = 0;free(buffer);  // 内存归还给C库,未归还给内核/* <do your RT-thing> 实时任务逻辑 */return0;}

这里重点强调Linux 6.6的按需调页(Demand Paging)机制:当malloc()成功返回时,内核仅分配了虚拟地址空间,并未真正分配物理内存,此时读取该内存地址,内容全为0且页面映射为只读;只有当程序对内存进行写操作时,才会触发页错误(Page Fault),内核才会真正分配物理内存并建立虚拟地址与物理地址的映射。这一机制有效避免了内存浪费,提升了系统内存利用率。

二、内核空间内存存取:兼顾性能与安全性

内核空间的内存存取与用户空间有本质区别:内核空间直接操作物理内存,对性能、连续性、安全性要求更高,且不能直接使用用户空间的malloc()/free()函数。Linux 6.6内核中,内核空间内存动态申请的核心函数依然是kmalloc()、__get_free_pages()、vmalloc(),同时对slab机制进行了重要优化,引入Sheaves和Barns概念,进一步降低锁竞争。

1. 核心分配函数:各有侧重,按需选择

Linux 6.6内核中,内核空间内存分配函数的核心逻辑保持稳定,但在性能上有针对性优化,三者的区别与适用场景如下:

(1)kmalloc():物理连续,高效分配

函数原型:void *kmalloc(size_t size, int flags);

核心特点:Linux 6.6中,kmalloc()依然依赖__get_free_pages()实现,申请的内存位于DMA和常规区域的映射区,物理地址连续,虚拟地址与物理地址存在固定偏移,转换效率高。其最大优化在于,结合slab的per-CPU cache机制,减少了多CPU场景下的锁竞争。

关键参数flags(常用):

  • GFP_KERNEL:最常用,用于进程上下文,若内存不足,进程会睡眠等待,不能用于中断上下文;

  • GFP_ATOMIC:用于中断上下文、tasklet、内核定时器等非进程上下文,内存不足时直接返回,不阻塞;

  • 其他标志(如GFP_DMA、GFP_HIGHUSER),Linux 6.6对GFP_HIGHMEM的支持更完善,适配更大容量的高端内存。

释放函数:kfree(),用法与用户空间的free()类似,Linux 6.6中优化了kfree()的释放效率,减少了 slab 缓存的锁竞争。

(2)__get_free_pages():底层页分配,精准控制

__get_free_pages()系列函数/宏是Linux内核最底层的内存分配方式,底层依赖buddy算法(伙伴系统),以2^order页为单位分配内存(order为分配阶数)。Linux 6.6中,buddy算法的per-CPU Page frame cache(pcp)机制进一步优化,减少了跨CPU的内存申请/释放开销。

核心成员:

  • get_zeroed_page(flags):返回指向已清零页面的指针;

  • __get_free_page(flags):返回指向未清零页面的指针,本质是调用__get_free_pages(flags, 0),分配1页;

  • __get_free_pages(flags, order):分配2^order页,未清零,order最大值取决于硬件平台(通常为10或11,即1024页或2048页)。

释放函数:free_page()(释放1页)、free_pages()(释放多页),申请标志与kmalloc()完全一致,Linux 6.6中优化了页面回收逻辑,提升了内存复用效率。

(3)vmalloc():虚拟连续,适配大内存

函数原型:void *vmalloc(unsigned long size);,释放函数为vfree(void *addr)。

核心特点:vmalloc()申请的虚拟地址连续,但物理地址可以不连续,底层通过建立新的页表项实现映射,开销远大于kmalloc()和__get_free_pages()。Linux 6.6中,vmalloc()的页表建立效率有所提升,适合为软件层面的大尺寸顺序缓冲区分配内存(如模块加载时的内存申请)。

注意事项:vmalloc()内部使用GFP_KERNEL标志调用kmalloc(),因此不能用于原子上下文;不适合分配少量内存(如1页以内),否则会造成不必要的性能开销。create_module()是系统调用,在Linux 6.6中依然使用vmalloc()获取模块所需内存。

2. 进阶优化:slab机制与内存池(Linux 6.6新特性重点)

slab机制是Linux内核用于优化小对象内存分配的核心技术,解决了以页为单位分配内存导致的浪费问题,kmalloc()本质就是基于slab机制实现的。Linux 6.6对slab机制进行了重大优化,引入了Sheaves(束)和Barns(谷仓)的per-CPU cache概念,大幅提升了多CPU场景下的分配效率。

(1)Linux 6.6 slab机制新特性:Sheaves与Barns

在Linux 6.6之前,slab机制的全局缓存存在跨CPU锁竞争和缓存同步开销,影响多线程、多CPU场景下的性能。而Sheaves和Barns的引入,实现了slab的per-CPU缓存管理,核心逻辑如下:

  • Sheaves(束):每个CPU本地的小批量slab对象缓存,分为主Sheaf和备用Sheaf,用于快速响应本地CPU的内存分配/释放请求,大多数情况下无需加锁,实现无锁操作,减少锁竞争;

  • Barns(谷仓):全局slab池(按NUMA节点管理),用于平衡各CPU的Sheaves缓存,当某个CPU的Sheaves为空(分配不到内存)时,从Barns获取一个装满对象的Sheaf;当Sheaves满(释放的对象过多)时,将多余的Sheaf放回Barns或回写至slab页面。

这一优化使得Linux 6.6的slab机制在多CPU服务器场景下,内存分配/释放效率提升显著,尤其适合频繁创建、销毁小对象(如inode、task_struct)的场景。

(2)slab缓存的实操示例(适配Linux 6.6)

slab缓存的核心操作包括创建、分配、释放、销毁,以下是结合Linux 6.6特性的实操代码:

#include<linux/slab.h>  // Linux 6.6 slab相关头文件// 定义自定义数据结构structxxx {int id;char data[32];};statickmem_cache_t *xxx_cachep;  // slab缓存指针// 模块初始化:创建slab缓存staticint __init xxx_init(void){// 创建slab缓存,指定名称、对象大小、对齐方式、标志    xxx_cachep = kmem_cache_create("xxx_cache"sizeof(struct xxx),0, SLAB_HWCACHE_ALIGN|SLAB_PANIC, NULLNULL);if (!xxx_cachep)return -ENOMEM;// 分配slab缓存对象structxxx *ctx = kmem_cache_alloc(xxx_cachepGFP_KERNEL);if (!ctx) {        kmem_cache_destroy(xxx_cachep);return -ENOMEM;    }// 使用缓存对象    ctx->id = 1;snprintf(ctx->data, sizeof(ctx->data), "linux-6.6-slab-demo");// 释放缓存对象    kmem_cache_free(xxx_cachep, ctx);return0;}// 模块退出:销毁slab缓存staticvoid __exit xxx_exit(void){    kmem_cache_destroy(xxx_cachep);}module_init(xxx_init);module_exit(xxx_exit);MODULE_LICENSE("GPL");

查看slab缓存状态:Linux 6.6中,依然可以通过cat /proc/slabinfo命令查看当前slab缓存的分配、使用情况,包括活跃对象数、对象大小、每页对象数等信息,新增了Sheaves和Barns相关的统计项(需开启内核调试选项)。

(3)内存池:应急内存分配方案

内存池(mempool)是Linux内核提供的后备缓存技术,用于应对内存紧张场景,核心是预分配一定数量的对象,当常规内存分配失败时,可从内存池中获取对象,保证系统关键功能的正常运行。Linux 6.6中,内存池的接口未发生变化,核心操作依然是创建、分配、释放、销毁。

核心函数:

  • mempool_create():创建内存池,指定预分配对象数目、分配/释放函数;

  • mempool_alloc():从内存池分配对象,内存不足时使用预分配的后备对象;

  • mempool_free():释放对象回内存池;

  • mempool_destroy():销毁内存池,释放所有预分配对象。

适用场景:内核驱动、文件系统等关键模块,需要在内存紧张时保证核心功能不中断,如磁盘IO驱动中的缓冲区分配。

三、Linux 6.6内存存取核心总结与实践建议

1. 核心总结

  • 用户空间:malloc()/free()通过C库二次管理,减少内核调用;按需调页机制避免内存浪费,Linux 6.6优化了多线程场景下的malloc效率。

  • 内核空间:kmalloc()(物理连续、高效)、__get_free_pages()(底层页分配)、vmalloc()(虚拟连续、大内存)按需选择;slab机制引入Sheaves和Barns,提升多CPU场景性能。

  • 共性优化:Linux 6.6重点降低了内存分配/释放过程中的锁竞争,提升了内存复用效率,适配更高性能的硬件平台。

2. 实践建议

  • 实时性程序:用户空间使用mallopt()配置内存不归还内核,内核空间使用GFP_ATOMIC标志,避免阻塞;

  • 大内存分配:用户空间使用mmap()(直接映射内核内存),内核空间使用vmalloc()(虚拟连续),避免物理连续内存不足的问题;

  • 小对象频繁分配:内核空间优先使用slab缓存,利用Linux 6.6的Sheaves和Barns特性,提升分配效率;

  • 内存调试:使用cat /proc/slabinfo(slab缓存)、cat /proc/meminfo(系统内存)、valgrind(用户态内存泄漏)排查内存问题。

内存存取是Linux内核的核心基础,理解其底层逻辑与Linux 6.6的优化点,不仅能帮助我们写出更高效、更稳定的程序,还能在排查内存泄漏、性能瓶颈时快速定位问题。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-03-27 13:23:54 HTTP/2.0 GET : https://f.mffb.com.cn/a/479991.html
  2. 运行时间 : 0.138916s [ 吞吐率:7.20req/s ] 内存消耗:4,687.05kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=01ce9137ec20ce03fcdeecb22fdb5ff9
  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.000362s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000527s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.003441s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.001225s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000544s ]
  6. SELECT * FROM `set` [ RunTime:0.002149s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000589s ]
  8. SELECT * FROM `article` WHERE `id` = 479991 LIMIT 1 [ RunTime:0.006517s ]
  9. UPDATE `article` SET `lasttime` = 1774589034 WHERE `id` = 479991 [ RunTime:0.000585s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.000246s ]
  11. SELECT * FROM `article` WHERE `id` < 479991 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000665s ]
  12. SELECT * FROM `article` WHERE `id` > 479991 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000415s ]
  13. SELECT * FROM `article` WHERE `id` < 479991 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.034396s ]
  14. SELECT * FROM `article` WHERE `id` < 479991 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.012626s ]
  15. SELECT * FROM `article` WHERE `id` < 479991 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.007723s ]
0.140464s