gpt4 book ai didi

c++ - 我可以检查缓存中是否有一 block 内存(例如,使用 malloc 分配)吗?

转载 作者:太空宇宙 更新时间:2023-11-04 03:32:57 25 4
gpt4 key购买 nike

假设我使用 malloc 分配一些空间。我可以在运行时检查此连续内存是否保留在 CPU 的缓存中(或者更好的是在缓存级别 L1、L2、L3 等中)吗?

最佳答案

不可以,但是您可以使用预取指令在使用前将其从内存移动到缓存。如果数据已经在缓存中,这些指令应该很快(有一些特定于体系结构的警告,但我不知道您使用的是哪个平台)。

之所以可以查询内存是否在高速缓存中,是因为硬件将其管理在您可以轻松观察到的级别之下。在具有硬件管理的 TLB 的架构上,内存将在任何地方被虚拟地址跟踪。

关于c++ - 我可以检查缓存中是否有一 block 内存(例如,使用 malloc 分配)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34822932/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com