linux - 使用 mmap 的 Emacs 缓冲区分配

标签 linux emacs configuration memory-management memory-mapped-files

为什么 mmap 缓冲区分配在 cygwin、freebsd 和 irix6-5 上默认激活,但在 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) 将内存分配为私有(private)匿名映射。 MMAP_THRESHOLD 默认为 128 kB,但可以使用 mallopt(3) 进行调整。”

也许在其他平台上切换到 mmap 是为了解决本身不执行的糟糕的 malloc() 实现?

关于linux - 使用 mmap 的 Emacs 缓冲区分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6328002/

相关文章:

c++ - QT 5.2.1 编译错误; 'delete' 之前的预期不合格 ID

python 有 glob 仅返回 5 个最近的文件匹配

linux - 在没有 XServer 的系统上启动时运行 Emacs

python - 如何为 PyDev 配置 Eclipse? Python 没有出现在首选项窗口中

configuration - ./etc 文件夹路径上的 redis 文件被删除

C++ 列表迭代器在遍历时永远不会到达 end()

unicode - Emacs:自动将 LaTeX 替换为 Unicode 符号

Emacs 将备用文件扩展映射到 .ini 语法突出显示

jsp - 如何向 Komodo Edit 添加 JSP 语法突出显示?

c++ - 在 Linux 上用 C++ 移动文件的更快方法