gpt4 book ai didi

linux - MADV_DONTNEED 在 mmap() 之后立即执行任何有用的操作吗?

转载 作者:太空宇宙 更新时间:2023-11-04 09:10:19 43 4
gpt4 key购买 nike

我正在创建一个使用大型 mmap() 匿名内存块的软件,其中大部分未使用 - 它在那里用于 future 扩展。我目前正在使用 mmap() 分配它,然后告诉操作系统内核我实际上不需要使用 madvise(ptr, bytes, MADV_DONTNEED) 分配的页面>.

执行此 madvise() 调用有什么好处吗?我可以只使用 mmap() 分配内存吗?

我已经发现核心文件变得相当大,有很多 mmap()'d 内存,所以我处理 SIGSEGV 和一些其他信号和 munmap() 我不想留给核心文件的部分。

最佳答案

如果在 mmap 之后立即使用,则 MADV_DONTNEED 无效。

要避免 Linux 3.4 及更高版本上的核心转储膨胀,您可以将 madviseMADV_DONTDUMP 一起使用。

关于linux - MADV_DONTNEED 在 mmap() 之后立即执行任何有用的操作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57614416/

43 4 0