MADV_DONTNEED 在 mmap() 之后立即执行任何有用的操作吗?
Is MADV_DONTNEED immediately after mmap() doing anything useful?
我正在创建一个使用大型 mmap()
匿名内存块的软件,其中大部分未使用 - 用于未来扩展。我目前正在使用 mmap()
分配它,然后告诉操作系统内核我实际上不需要使用 madvise(ptr, bytes, MADV_DONTNEED)
.
分配的页面
进行此 madvise()
调用有什么好处吗?我可以只使用 mmap()
分配内存吗?
我已经发现核心文件变得相当大,有很多 mmap()'d
内存,所以我处理 SIGSEGV
和其他一些信号以及 munmap()
我不想离开的部分到核心文件。
否 MADV_DONTNEED
如果在 mmap
之后立即使用则没有效果。
为了避免 Linux 3.4 及更高版本上的核心转储膨胀,您可以将 madvise
与 MADV_DONTDUMP
.
一起使用
我正在创建一个使用大型 mmap()
匿名内存块的软件,其中大部分未使用 - 用于未来扩展。我目前正在使用 mmap()
分配它,然后告诉操作系统内核我实际上不需要使用 madvise(ptr, bytes, MADV_DONTNEED)
.
进行此 madvise()
调用有什么好处吗?我可以只使用 mmap()
分配内存吗?
我已经发现核心文件变得相当大,有很多 mmap()'d
内存,所以我处理 SIGSEGV
和其他一些信号以及 munmap()
我不想离开的部分到核心文件。
否 MADV_DONTNEED
如果在 mmap
之后立即使用则没有效果。
为了避免 Linux 3.4 及更高版本上的核心转储膨胀,您可以将 madvise
与 MADV_DONTDUMP
.