C中结构包装的性能

时间:2016-03-03 06:13:21

标签: c gcc

我使用的是64位机器

使用结构时

 typedef struct node{
    unsigned int p; //4 bytes
    struct node* next;//8bytes
 }Node;
 //sizeof(Node) is 16 bytes

我知道这是由于结构填充。 如果我使用结构包装

typedef struct __attribute__((__packed__))
//sizeof(Node) is 12 bytes

我是否应该预期使用包装会导致性能下降,还是取决于系统?

编译器为gcc (GCC) 4.4.7

我已经使用打包和解压缩结构测试了我的代码,但性能似乎没有任何差别。

1 个答案:

答案 0 :(得分:2)

这不是很多信息。答案还取决于您的节点分配策略,关于您是将节点嵌入数据还是单独存储,缓存行的大小,您的工作类型等等。

使用和不使用打包(在您的特定应用程序中)测量您的运行时间 - 您将得到答案。

相关问题