以编程方式获取缓存行大小?

新手上路,请多包涵
阅读 427
2 个回答

如果您使用的是 SDL2,则可以使用此功能:

 int SDL_GetCPUCacheLineSize(void);

它返回 L1 缓存行大小的大小,以字节为单位。

在我的 x86_64 机器上,运行以下代码片段:

 printf("CacheLineSize = %d",SDL_GetCPUCacheLineSize());

产生 CacheLineSize = 64

我知道我有点晚了,但只是为未来的访客添加信息。 SDL 文档目前说返回的数字以 KB 为单位,但实际上以字节为单位。

原文由 negamartin 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题