1

在使用 mmap 分配一些匿名 mem 时,我们通常将起始地址设置为 0/null,因此 mmap 会自行计算起始地址。为了获得起始地址,它会在整个虚拟内存空间中找到一个可以分配内存卡盘的孔。我想这是作为用户 cpu 而不是 sys cpu 计算的。如果虚拟内存是碎片化的,那么找起始地址的时候会占用更多的用户cpu,我的理解是否正确

4

1 回答 1

6

我不认为这是正确的。在 mmap 系统调用中花费的时间计为系统时间。不过,找到足够大的地址空间窗口并设置映射的时间应该是微不足道的。

于 2009-05-08T13:15:29.370 回答