
文章来源: 更新时间:2024-12-03 04:40:08
当我新声明了一个局部变量之后,某个性能测试函数所消耗的时间突然从100ms上涨到500ms 原因是: 当且仅当使用MSVC++/x64/release编译时 如果在main函数中被声明了一个std::thread局部变量,一个32字节大小的8字节对齐的局部变量,以及一个volatile size_t局部变量,(以及若干time_point变量) 那么rbp(栈底寄存器)不是8字节对齐的 这导致,使用rbp+offset读写局部变量时,offset不是8的倍数——而CPU对8的倍数的offset访问是…。
地址:广东省广州市天河区88号电话:400-123-4657传真:+86-123-4567
版权所有: