1

很清楚如何组合mlockall()malloc()锁定进程在其生命周期内分配的所有页面。通过阅读文档,我不清楚释放已经锁定的内存是否意味着相应页面的自动解锁。

4

1 回答 1

2

如果free将内存返回给系统(即,它被分配mmap并将被释放munmap),那么当它被取消映射时,锁将自动被移除。这通常是大分配的情况。

如果free将内存返回到进程内管理的堆,则锁将保留。这通常是小分配的情况。

在 GNU/Linux 上,您可以使用;mallopt获取和设置分配阈值。mmap默认(至少在我的电脑上)是 128kb。在其他 Unix 风格上,mmap如果您需要那种级别的控制,您可能需要直接使用。

于 2013-04-17T09:47:49.970 回答