分类: C/C++
2008-08-25 10:00:51
要节省带宽,就要将数据压缩(pack)的更加紧致,或减少其在执行核之间的移动。将数据压缩得更加紧致通常是比较直接的方法,并且对串行执行也是有益的。例如,将布尔型的数组压缩成用一位来表示一个布尔值,而不是用一个字节来表示一个布尔值。也可以使用最短的数据类型保存要求范围内的数值。在C/C++中声明结构的时候,按照数据类型大小的降序来声明每一个域。这种策略可以将编译器用于维护对其原则所进行的额外填充数量降到最低。
有些编译器还支持“#pragma pack”指导命令,将结构压缩得更加紧致,使用的手段可能是删除所有的填充内容。但是这种非常紧致的压缩可能不是很高效,因为它会导致非对齐的载入和存储操作,这样会比对齐的载入和存储操作慢得多。
|
摘自《Multi-Core Programming》