高速缓冲行带来的数据对齐问题

windows核心编程写道<P204>:

1、我们应该根据高速缓冲行的大小来将应用程序的数据组织在一起,并将数据与缓冲行的边界对齐。

2、我们应该把只读数据(或不经常使用的数据)与可读写数据分别存放。

3、我们应该把差不多会在同一时间访问的数据组织在一起。

这样做的目的是为了确保不同的CPU能够各自访问不同的内存地址,而且这些地址不在同一高速缓冲行中。此外,我们应该把只读数据(或不经常使用的数据)与可读写数据分别存放。

 

windows中调用GetLogicalProcessorInformation函数,获取cache信息。 定义结构体的时候使用 _declspec(align(CACHE_ALIGN))强制将几个变量放入同一或不同的缓冲行。

你可能感兴趣的:(高速缓冲行带来的数据对齐问题)