我希望程序读取C ++中运行的CPU的缓存行大小。
我知道这是无法移植的,所以我将需要一个针对Linux的解决方案和一个针对Windows的解决方案(其他系统的解决方案可能对其他人有用,因此请在知道的情况下发布它们)。
对于Linux,我可以读取/ proc / cpuinfo的内容并解析以cache_alignment开头的行。也许有更好的方法来调用API。
对于Windows,我根本不知道。
在Win32上,GetLogicalProcessorInformation将给您还SYSTEM_LOGICAL_PROCESSOR_INFORMATION包含的CACHE_DESCRIPTOR,其中包含您需要的信息。
GetLogicalProcessorInformation
SYSTEM_LOGICAL_PROCESSOR_INFORMATION
CACHE_DESCRIPTOR