乐于分享
好东西不私藏

笔试题“结构体sizeof(),明明只占15字节,怎么成了24?”---字节对齐的规则与奥秘

笔试题“结构体sizeof(),明明只占15字节,怎么成了24?”---字节对齐的规则与奥秘

一、一道笔试题,答对率不到40%

先看一道某厂C语言笔试题:

struct AAA{    char a;    double b;    int c;    short d;};sizeof(struct AAA) = (    )

问:在 64 位系统下,括号()的值是多少?

很多同学的答案:15(1+8+4+2=15)

正确答案:24

明明 1+8+4+2=15,为什么结果是 24?多出来的 9 个字节是怎么回事?

二、为什么有对齐要求?——硬件根源

2.1 什么是内存对齐?

简单说:数据类型在内存中存放的起始地址,必须满足一定的“对齐要求”

  • char(1字节):可从任意地址开始(1字节对齐)

  • short(2字节):起始地址必须是2的倍数(2字节对齐)

  • int(4字节):起始地址必须是4的倍数(4字节对齐)

  • double(8字节):起始地址必须是8的倍数(8字节对齐)

为什么?——因为CPU的硬件访问方式。

CPU通过数据总线从内存读取数据,数据总线的宽度决定了CPU一次可以传输多少字节。在64位系统下,数据总线为64位(8字节),这意味着CPU一次最优传输8字节——起始地址对齐到8的倍数时,一次传输就能拿到完整数据。

如果数据没有对齐,比如一个8字节的double放在了地址0x1001(非8的倍数),CPU需要两次传输再拼凑,效率大幅下降。

对齐访问:一次传输完成 → 最优效率未对齐访问:多次传输 + 裁剪拼接 → 效率下降

⚠️ 注意:未对齐访问在 x86/x64 上只会导致性能下降,但在某些 ARM 平台上可能会触发硬件异常。因此,编写可移植代码时应尽量避免未对齐访问。

三、结构体对齐的四条规则

规则一:基本类型成员的偏移地址 = 自身大小的整数倍

结构体的成员是按照声明顺序依次摆放的。 编译器从偏移0开始,逐个安排每个成员。每安排一个成员前,先检查当前偏移是否满足该成员的对齐要求——如果满足,直接放;如果不满足,跳过几个字节(填充)直到满足为止。

⚠️ 此规则针对基本数据类型成员(charshortintdouble等)。如果成员是嵌套结构体,则使用规则四。

以 struct AAA 为例:

struct AAA{  char a;  // 1字节 → 从偏移0开始放(0是1的倍数,✅)  double b;// 8字节 → 需要8字节对齐,从偏移8开始放(偏移1-7填充)  int c;   // 4字节 → 从偏移16开始放(16是4的倍数,✅)  short d; // 2字节 → 从偏移20开始放(20是2的倍数,✅)};

成员摆放完毕后,当前偏移为22(0-21已被占用)。

规则二:结构体总大小 = 最宽成员大小的整数倍

结构体的总大小必须是最宽成员大小的整数倍。如果不是,编译器会在尾部填充字节。

struct AAA 最宽成员是 double(8字节),当前已占用22字节(0-21),22不是8的倍数 → 尾部填充2字节 → 总大小 24

规则二的意义在于:结构体数组连续存放时,每个元素的首地址都能正确对齐。

规则三:结构体变量的起始地址 = 最宽成员大小的整数倍

编译器在分配结构体变量时,会确保其首地址满足最宽成员的对齐要求。

规则四:嵌套结构体成员的对齐 = 其内部最宽成员的对齐

嵌套结构体作为成员时,它的对齐要求 = 其内部最宽基本类型成员的对齐要求,而不是它自身的大小。

struct Inner {  char a;  // 1字节,偏移0  double b;// 8字节,偏移8(偏移1-7填充)  int c;   // 4字节,偏移16};// Inner 总大小 24,对齐要求 8(由 double 决定,不是24!)struct Outer {  struct Inner in;// 24字节,对齐要求 8(不是24!),偏移0-23  short d;        // 2字节,偏移24-25};// 当前偏移26,对齐要求 max(8,2)=8,向上取整到8的倍数 → 32

如果嵌套结构体的对齐要求按自身大小(24)来算,那么所有包含它的结构体都要对齐到24的倍数——这会浪费大量内存,而且完全没有必要,因为内部最宽的对齐要求仅仅是8。

四条规则共同保证了:结构体在任何内存位置,其内部每个成员都能正确对齐。

四、图解:24 字节是怎么来的?

以开篇的 struct AAA { char a; double b; int c; short d; } 为例,其内存布局如下:

填充字节分析:

填充位置
字节数
原因
偏移1-7
7
让 double 从8的倍数(偏移8)开始
偏移22-23
2
让总大小是8的倍数(满足结构体数组对齐)

有效数据: 1 + 8 + 4 + 2 = 15 字节填充字节: 7 + 2 = 9 字节总大小: 15 + 9 = 24 字节

五、换个成员顺序,结果完全不同

struct BBB {  double b;// 8字节,偏移0  int c;   // 4字节,偏移8  short d; // 2字节,偏移12  char a;  // 1字节,偏移14};// 总大小 16 字节

结果:16 字节

相同的成员,不同的排列顺序:24 字节 → 16 字节,节省了 8 字节!

核心原则:把大号成员(对齐要求高)放在前面,小号成员放在后面,填充最少。

六、知道对齐规则,有什么实际好处?

① 节约内存,尤其在嵌入式场景

在资源受限的单片机中,RAM 和 ROM 非常有限,结构体的填充字节可能成为不可忽视的开销。

// 某传感器数据接收结构体struct SensorData {  uint8_t id;    // 1 字节  uint32_t value;// 4 字节  uint16_t count;// 2 字节};  // 实际占用 12 字节// 优化后:struct SensorData_Opt {  uint32_t value;// 4 字节  uint16_t count;// 2 字节  uint8_t id;    // 1 字节};// 实际占用 8 字节

单个结构体省 4 字节,100 个实例就省 400 字节。 对于只有 2KB RAM 的 MCU,这就是 20% 的内存节省。

② 优化缓存局部性(PC/服务器)

CPU 以缓存行(通常 64 字节)为单位加载数据。若结构体中频繁访问的字段分散在不同缓存行,会降低效率。合理布局将热字段集中,可减少缓存未命中,在大型系统中可能带来可观的性能提升。

③ 理解编译器行为,避免跨平台陷阱

结构体的填充字节是编译器在内存中为了满足CPU对齐要求而插入的。但这些填充字节在网络传输或跨平台通信中没有意义——如果直接把结构体用memcpy发送出去,接收方可能因为填充规则不同而解析错误。

七、实际开发中的权衡:空间 vs 可读性

了解了对齐规则,你有能力写出更紧凑的结构体。但 “有能力”不意味着“必须”

  • 资源极度受限的场景(MCU、Bootloader):优化成员顺序很有价值,每一字节都可能影响成本或功能可行性。

  • 资源充裕的场景(PC、服务器):优先保证代码可读性——按功能逻辑分组,让代码更容易理解和维护。

折中方案:按功能逻辑分组,组内按大小排序, 例如

struct DeviceConfig {  // 设备信息(大号优先)  uint32_t device_id;      // 4  uint64_t timestamp;      // 8  uint32_t status;         // 4  // 通信参数(大号优先)  uint32_t baud_rate;      // 4  uint16_t port;           // 2  uint8_t  protocol;        // 1};

八、常见笔试题变形

变形1:成员顺序优化

问:以下两个结构体分别占多少字节?

// 结构体 A:小号成员在前,大号成员在后 → 填充多struct Bad {  char a;  // 1 字节,偏移0  double b;// 8 字节,偏移8(偏移1-7填充)  int c;   // 4 字节,偏移16  short d; // 2 字节,偏移20};// 总大小 24 字节(偏移22-23尾部填充)// 结构体 B:大号成员在前,小号成员在后 → 填充少struct Good {  double b;// 8 字节,偏移0  int c;   // 4 字节,偏移8  short d; // 2 字节,偏移12  char a;  // 1 字节,偏移14};  // 总大小 16 字节(偏移15尾部填充1字节)

变形2:嵌套结构体

问:struct Outer 占多少字节?

struct Inner {  char a;   // 1 + 7填充 = 8  double b; // 8  int c;    // 4 + 4填充 = 8};  // Inner 总大小 24,对齐要求 8(由 double 决定)struct Outer {  struct Inner in;// 24字节,对齐要求 8,偏移0-23  short d;        // 2字节,偏移24-25};  // 当前偏移26,对齐要求 max(8,2)=8,向上取整到8的倍数 → 32

变形3:指定对齐(#pragma pack)

问:以下结构体占多少字节?

#pragma pack(1)struct Packed {  char a;     // 1  double b;   // 8  int c;      // 4  short d;    // 2};// 总大小 15#pragma pack()

[注] #pragma pack(1) 是强制1字节对齐,不填充。

强制1字节对齐的主要应用场景是网络协议、文件格式和硬件寄存器映射,目的是精确控制数据布局,避免填充字节破坏数据格式。

典型场景:

  • 网络协议数据包:TCP/IP、UDP等协议头需要严格按照协议规范排列,不能有额外填充

  • 文件格式解析:BMP、WAV、ELF等文件格式的头部结构必须与规范严格对应

  • 嵌入式外设寄存器:硬件寄存器通常按固定偏移映射,需要精确控制结构体布局

九、一张图总结

写在最后

回到开篇那道题:

struct AAA{    char a;    double b;    int c;    short d;};sizeof(struct AAA) = (    )

为什么是 24 而不是 15?

因为 CPU 的硬件访问方式决定了:对齐访问才是最高效的访问方式。编译器为了满足对齐要求,自动在成员之间和结构体尾部插入了 9 个字节的填充。

记住四条核心规则:

1. 基本类型成员的起始地址 = 自身大小的整数倍。2. 结构体的总大小 = 最宽成员大小的整数倍。3. 结构体的首地址 = 最宽成员大小的整数倍。4. 嵌套结构体成员的对齐 = 其内部最宽成员的对齐(而非自身大小)。

一个实用原则:

把大号成员放在前面,小号成员放在后面,填充最少,内存最省。

理解了这个,你永远不会再被这道题坑到。

关于作者:某公司嵌入式底软面试官,根据近期招聘应届生的C语言笔试反馈,总结一些 共性的问题,分享一下。回想自己刚毕业的时候,也是一样搞不清楚,逐步啃《C缺陷与陷阱》、《C专家编程》 等C语言经典书籍,才逐步入门。。。因此,花点时间写个笔记,抛砖引玉,希望让有需要的人少点弯路。不够严谨的地方也欢迎留言指正。

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-08-21 00:43:50 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/953769.html
  2. 运行时间 : 0.277504s [ 吞吐率:3.60req/s ] 内存消耗:4,732.92kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=aa2baf10ca14f2393250baad44f5d40f
  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 ( 4.22 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 ( 10.56 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.11 KB )
  136. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  137. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  138. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  139. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  140. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  141. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/runtime/temp/c935550e3e8a3a4c27dd94e439343fdf.php ( 31.50 KB )
  142. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  143. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  144. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  145. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000991s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001603s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000595s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000603s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001206s ]
  6. SELECT * FROM `set` [ RunTime:0.000482s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001336s ]
  8. SELECT * FROM `article` WHERE `id` = 953769 LIMIT 1 [ RunTime:0.001094s ]
  9. UPDATE `article` SET `lasttime` = 1787244230 WHERE `id` = 953769 [ RunTime:0.025169s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.001216s ]
  11. SELECT * FROM `article` WHERE `id` < 953769 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001300s ]
  12. SELECT * FROM `article` WHERE `id` > 953769 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001012s ]
  13. SELECT * FROM `article` WHERE `id` < 953769 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.013040s ]
  14. SELECT * FROM `article` WHERE `id` < 953769 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.001416s ]
  15. SELECT * FROM `article` WHERE `id` < 953769 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.008799s ]
0.281522s