一尘不染

如何以编程方式获取C ++中的CPU缓存页面大小?

linux

我希望程序读取C ++中运行的CPU的缓存行大小。

我知道这是无法移植的,所以我将需要一个针对Linux的解决方案和一个针对Windows的解决方案(其他系统的解决方案可能对其他人有用,因此请在知道的情况下发布它们)。

对于Linux,我可以读取/ proc / cpuinfo的内容并解析以cache_alignment开头的行。也许有更好的方法来调用API。

对于Windows,我根本不知道。


阅读 306

收藏
2020-06-03

共1个答案

一尘不染

在Win32上,GetLogicalProcessorInformation将给您还SYSTEM_LOGICAL_PROCESSOR_INFORMATION包含的CACHE_DESCRIPTOR,其中包含您需要的信息。

2020-06-03