【问题标题】:How to check if data is still in memory如何检查数据是否仍在内存中
【发布时间】:2015-01-31 03:37:46
【问题描述】:

假设我分配了一些任意大小的内存

void* p = malloc(WHATEVER_SIZE);

稍后我想检查(可能使用系统调用)该数据的哪些字节在物理内存中,以及需要进行多少页面交换才能检索那些不在的页面。有没有办法做到这一点?

【问题讨论】:

    标签: c malloc heap-memory virtual-memory


    【解决方案1】:

    如果您使用的是 Linux 或类似系统,请尝试使用 mincore 系统调用。它为您提供了一个位向量,表示对于一系列页面,哪些页面在调用时是物理驻留的。当然,这些信息在您使用时可能已经过时;除非页面被锁定,否则它本质上会受到TOCTOU 的竞争。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-15
    • 1970-01-01
    • 2020-01-27
    • 1970-01-01
    • 1970-01-01
    • 2019-11-13
    • 2013-07-16
    • 2019-05-03
    相关资源
    最近更新 更多