为什么默认情况下在cygwin,freebsd和irix6-5上激活mmap缓冲区分配但不在
linux上激活?
请参阅emacs / src / config.h中的USE_MMAP_FOR_BUFFERS.
和emacs / configure.in中的use_mmap_for_buffers.
基于mmap的访问不是优于正常的缓冲区分配吗?
解决方法
默认的glibc malloc()使用mmap进行大量分配;来自malloc(3)联机帮助页. “当分配大于MMAP_THRESHOLD字节的内存块时,glibc
malloc()实现使用mmap(2)将内存分配为私有匿名映射.
MMAP_THRESHOLD默认为128 kB,但可以使用mallopt(3)进行调整.“
malloc()实现使用mmap(2)将内存分配为私有匿名映射.
MMAP_THRESHOLD默认为128 kB,但可以使用mallopt(3)进行调整.“
也许在其他平台上切换到mmap是为了解决那些不能自己做的差的malloc()实现?