我开始使用_mm_clflush、_mm_clflushopt和 等函数_mm_clwb。
现在说我已经定义了一个结构体名称 mystruct ,它的大小是 256 字节。我的缓存行大小是 64 字节。现在我想刷新包含 mystruct 变量的缓存行。以下哪种方法是正确的方法?
_mm_clflush(&mystruct)
Run Code Online (Sandbox Code Playgroud)
或者
for (int i = 0; i < sizeof(mystruct)/64; i++) {
_mm_clflush( ((char *)&mystruct) + i*64)
}
Run Code Online (Sandbox Code Playgroud)