我希望我的程序读取它在 C++ 中运行的 CPU 的缓存行大小。
我知道这不能移植,所以我需要一个 Linux 解决方案和另一个 Windows 解决方案(其他系统的解决方案可能对其他人有用,所以如果你知道它们,请发布它们)。
对于 Linux,我可以读取 /proc/cpuinfo 的内容并解析以 cache_alignment 开头的行。也许有更好的方法涉及对 API 的调用。
对于 Windows,我根本不知道。
原文由 Mathieu Pagé 发布,翻译遵循 CC BY-SA 4.0 许可协议
在 Win32 上,
GetLogicalProcessorInformation
会给你一个SYSTEM_LOGICAL_PROCESSOR_INFORMATION
其中包含一个CACHE_DESCRIPTOR
,它有你需要的信息。