Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
很清楚如何组合mlockall()并malloc()锁定进程在其生命周期内分配的所有页面。通过阅读文档,我不清楚释放已经锁定的内存是否意味着相应页面的自动解锁。
mlockall()
malloc()
如果free将内存返回给系统(即,它被分配mmap并将被释放munmap),那么当它被取消映射时,锁将自动被移除。这通常是大分配的情况。
free
mmap
munmap
如果free将内存返回到进程内管理的堆,则锁将保留。这通常是小分配的情况。
在 GNU/Linux 上,您可以使用;mallopt获取和设置分配阈值。mmap默认(至少在我的电脑上)是 128kb。在其他 Unix 风格上,mmap如果您需要那种级别的控制,您可能需要直接使用。
mallopt