当前位置:首页>Linux>Linux mmap 四种映射模式:文件共享、私有隔离、匿名分配,到底该用哪个?

Linux mmap 四种映射模式:文件共享、私有隔离、匿名分配,到底该用哪个?

  • 2026-08-19 06:34:25
Linux mmap 四种映射模式:文件共享、私有隔离、匿名分配,到底该用哪个?

我认识的一个的朋友,在一家做图像处理的公司上班。有段时间他负责优化图片处理模块的性能,把原来 open/read/write 这套流程换成了 mmap。效果确实好——内存占用少了,CPU 也省了。但没过多久,线上开始出现图片显示乱码的 bug,排查了两天才发现是 mmap 的共享模式和私有模式混着用,改文件的人以为内存不会同步,结果别人一改文件,他的内存也跟着变了。

这事挺典型的。mmap 是 Linux 里最强大的系统调用之一,但它的四种组合——共享/私有 × 文件/匿名——把很多人搞懵了。你以为你在读内存,实际上可能读的是别人的改动;你以为改了内存不会影响磁盘,结果写操作偷偷同步了。最扯的是,这种 bug 在线上往往表现为间歇性数据损坏——不触发条件时一切正常,触发一次就丢数据,排查起来能让人怀疑人生。

根本原因在于没人讲清楚一件事:mmap 的本质不是"把文件读进内存",而是"让一段虚拟地址空间和某种资源建立映射关系"。资源可以是文件,也可以是匿名内存;关系可以是共享的,也可以是私有的。

先看基本盘:文件映射 vs 匿名映射

这俩的区别最直接。

文件映射(file mapping):把磁盘上的一个文件映射到进程的虚拟地址空间。映射建立之后,读这片内存就读文件,写这片内存就写文件。内核负责把页表项和文件的 offset 对应起来,缺页中断时从磁盘加载。

匿名映射(anonymous mapping):不跟任何文件挂钩,映射的是一段纯内存。常见用途是 malloc() 的实现——glibc 底层就是用 mmap 来分配大块内存的,小块才走 brk/sbrk。

// 文件映射示例int fd = open("data.bin", O_RDWR);void *ptr = mmap(NULL, size, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);// 匿名映射示例void *ptr = mmap(NULL, size, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -10);

这两个维度——"跟不跟文件挂钩" × "共享还是私有"——就是四种映射的完整分类。拆开来看。

私有文件映射:读时共享,写时拷贝

MAP_PRIVATE + 文件映射的组合。

核心机制是 COW(Copy-On-Write,写时拷贝)。内核建立映射的时候,页表项指向文件对应的物理页——这个页是共享的。但你第一次写这片内存的时候,内核会截获这个写操作,分配一个新的物理页,把数据复制过来,然后把你的页表项改成指向新页。

读操作不触发拷贝,写操作才触发。这是私有文件映射最核心的行为特征。

这意味着什么?意味着如果你有 10 个进程都用 MAP_PRIVATE 映射同一个文件,前 10 个进程读的物理页是同一份——节省内存。谁先写,谁就拿到自己的副本,后面的写操作互不影响。

这个机制在动态链接库里被广泛使用。你启动一个程序,几十个共享库用私有映射加载进地址空间。同一个 libc.so.6 的读段被几百个进程共享,但每个进程自己的写段(.data、.bss)有独立的副本。这就是 COW 的价值——你不需要为每个进程复制一份完整的库文件。

但有一个大坑:写拷贝完成后,你的修改不会回写到磁盘。 私有映射的本质是"我只想看文件的某个版本,改了也不影响源文件"。所以如果你 mmap 一个配置文件,改了之后希望持久化——别想了,munmap() 之后文件原封不动。想写回磁盘,得用 msync(),而且即使是 MAP_PRIVATEmsync() 的行为也取决于实现,有些系统直接忽略。我见过有人因为这个 bug 排查了整整一下午——改完配置重启服务,发现配置根本没变,查了一圈才发现是 mmap 的私有属性在作祟。

共享文件映射:一写全写,一改全改

MAP_SHARED + 文件映射。这才是真正的"内存就是文件"。

没有任何拷贝机制。所有映射了同一片区域的进程,看到的物理页是同一份。一个进程改了内存,其他进程马上能看到变化——因为是同一块物理内存。反过来,磁盘上的文件也会被修改(延迟写入,内核会在适当时机 flush)。

这个特性有什么用?

进程间通信。 多个进程映射同一个文件,相当于共享了一块内存。不用 pipe,不用 socket,不用 shared memory 系统调用——mmap 本身就能完成通信。Redis 的持久化、一些高性能缓存系统、甚至数据库的 buffer pool,底层都有这个思路的影子。

但共享也意味着风险,而且是那种让人头皮发麻的风险。你改了内存,其他进程可能正在读——没有锁的情况下,读到一半的数据可能是脏的。共享文件映射的典型用法是在映射之前先对文件加锁,或者用信号量做同步。我见过最离谱的 bug 是一个共享映射的生产服务,某个 worker 进程崩溃后没有释放映射,其他进程继续读写那片内存——结果整个服务的数据都乱了,排查的时候日志里全是"数据不一致",找了一圈才发现是映射没释放导致的内存踩踏。

另一个风险是延迟写入。共享映射的修改不会立即落盘,内核有自己的 flush 策略。如果你写完之后期望数据立刻持久化——它不一定在。这也是为什么数据库用共享映射做 buffer pool 的时候,会有专门的 checkpoint 线程来确保数据落盘。

共享匿名映射:进程间的隐形成约

MAP_SHARED + 匿名映射。这组组合比较特殊,因为匿名映射没有 backing file,共享的只是物理内存,没有磁盘持久化。

实际场景不多,但有一个经典用法:** fork 之后的父子进程共享内存**。

// 父进程创建共享匿名映射void *ptr = mmap(NULL, size, PROT_READ|PROT_WRITE, MAP_SHARED|MAP_ANONYMOUS, -10);pid_t pid = fork();if (pid == 0) {// 子进程:ptr 指向和父进程相同的物理页// 修改这里,父进程也能看到}

fork 之后,父子进程的页表指向同一组物理页。如果用 MAP_SHARED,子进程对这片内存的修改对父进程可见——这就是共享匿名映射的核心价值。

但要注意:如果用 MAP_PRIVATE 做同样的事,fork 之后走的是 COW 机制——父子进程各自有独立副本,互不影响。这是 MAP_PRIVATE 匿名映射最常见的用途,也是 malloc() 在 fork 之后的行为基础。

私有匿名映射:malloc 的底层真相

MAP_PRIVATE + 匿名映射。这是 Linux 内存分配最核心的组合。

glibc 的 malloc() 对大于某个阈值(通常是 128KB,可以通过 mallopt 调整)的分配,底层走的就是 mmap with MAP_PRIVATE|MAP_ANONYMOUS。小分配走 ptmalloc 管理的 chunk,大分配直接 mmap——这两套机制并存,是 Linux 内存管理的基本事实。

为什么大分配走 mmap 而不是 brk?原因很简单:brk 扩展的是进程的 data segment,它是一次性的、从低地址往高地址推的。mmap 可以分散在地址空间的任意位置,而且 munmap() 之后可以直接归还给内核,不需要等整个进程退出。对于大对象来说,这种灵活性说句实在话——brk 那种方式根本办不到。

// 等价于一个 4MB 的 malloc,底层是 mmapvoid *ptr = mmap(NULL4*1024*1024, PROT_READ|PROT_WRITE,                 MAP_PRIVATE|MAP_ANONYMOUS, -10);// 用 free() 释放——glibc 会把这块转成 munmapfree(ptr);

一个容易忽视的细节:MAP_ANONYMOUS 在 Linux 上不需要文件描述符(传 -1),但 POSIX 标准要求用一个有效的 fd。所以在跨平台代码里,你可能会看到 MAP_ANONYMOUS|MAP_SHARED 配合一个 /dev/zero 的 fd——这是为了让代码在 macOS 和其他 Unix 系统上也能编译通过。我写过一段代码,在 Linux 上跑得好好的,部署到 macOS 上直接 segfault——就是因为忘了加 /dev/zero 这个 fd。

一张表理清四种组合

组合
底层资源
写是否回写
进程间可见
典型用途
私有文件映射
磁盘文件
加载共享库、只读配置文件
共享文件映射
磁盘文件
是(延迟)
进程间通信、数据库 buffer pool
私有匿名映射
匿名内存
N/A
malloc 大对象分配
共享匿名映射
匿名内存
N/A
fork 后父子进程共享内存

实际选型:别凭感觉,看场景

回到开头那个朋友的 bug——他混淆了共享和私有。如果他的图片处理模块只需要自己进程读写,用 MAP_PRIVATE 就够了;如果要让多个 worker 进程共享处理结果,才需要 MAP_SHARED

选型的核心判断标准就两个问题:

第一,是否需要持久化? 要持久化到磁盘(比如数据库页缓存)→ 文件映射。不要持久化(比如临时计算结果)→ 匿名映射。

第二,是否需要进程间共享? 需要 → MAP_SHARED。不需要 → MAP_PRIVATE

两个问题交叉,就是四种组合的唯一正确选择。没有灰色地带,也没有"性能更好"的选项——共享和私有的性能差异主要来自 COW 拷贝和页锁竞争,而不是映射方式本身。

大多数性能问题不是选错了映射类型,而是选对了类型但没用对同步机制。 共享映射没有锁——这是 90% 的共享映射 bug 的根源。我见过太多人用共享映射做进程间通信,以为"反正我们进程都好好的,不会出问题",结果一旦某个进程 crash,其他进程的数据全乱套。这种问题在线上出现的时候,基本就是灾难性的。

再问一句:你现在的代码里,有没有在用 mmap?用的是哪种组合?

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-08-21 14:35:51 HTTP/2.0 GET : https://f.mffb.com.cn/a/509479.html
  2. 运行时间 : 0.317873s [ 吞吐率:3.15req/s ] 内存消耗:4,598.38kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=9e576eb9e88408770eb6702772433e8f
  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.000329s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000594s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.004063s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.002027s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000498s ]
  6. SELECT * FROM `set` [ RunTime:0.001945s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000643s ]
  8. SELECT * FROM `article` WHERE `id` = 509479 LIMIT 1 [ RunTime:0.014505s ]
  9. UPDATE `article` SET `lasttime` = 1787294151 WHERE `id` = 509479 [ RunTime:0.032000s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.000853s ]
  11. SELECT * FROM `article` WHERE `id` < 509479 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001252s ]
  12. SELECT * FROM `article` WHERE `id` > 509479 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.018174s ]
  13. SELECT * FROM `article` WHERE `id` < 509479 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.057211s ]
  14. SELECT * FROM `article` WHERE `id` < 509479 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.069609s ]
  15. SELECT * FROM `article` WHERE `id` < 509479 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.033018s ]
0.321786s