对于大多数x86-64指令来说,保持数据对齐能够提高效率。但是它不会影响程序的行为。
另一方面,如果数据没有对齐,某些型号的Intel和AMD处理器对于有些实现多媒体操作的SSE指令,就无法正确执行。
这些指令对16字节数据块进行操作,在SSE单元和内存之间传送数据的指令要求内存地址必须是16的倍数。
任何针对x86-64处理器的编译器和运行时系统都必须保证分配用来保存可能会被SSE寄存器读或者写的数据结构的内存。
任何内存分配函数alloca,malloc,calloc,realloc生成的块的初始地址都必须是16的倍数。
x86-64架构中,保持数据对齐可以提升效率,尤其是对于使用SSE多媒体指令的Intel和AMD处理器。这些指令要求16字节对齐的内存地址来正确执行。所有分配内存的函数,如alloca、malloc、calloc和realloc,都必须确保返回16的倍数地址的内存块,以避免SSE指令执行错误。因此,内存管理在x86-64平台上的重要性不言而喻。
866

被折叠的 条评论
为什么被折叠?



