簡體   English   中英

Emacs 使用 mmap 分配緩沖區

[英]Emacs Buffer Allocation using mmap

為什么在 cygwin、freebsd 和 irix6-5 上默認激活mmap緩沖區分配,但在 linux 上沒有?

請參閱emacs/src/config.hUSE_MMAP_FOR_BUFFERS emacs/configure.in中的use_mmap_for_buffers

基於mmap的訪問不是優於正常的緩沖區分配嗎?

默認的 glibc malloc() 使用 mmap 進行大分配; 來自 malloc(3) 聯機幫助頁。 “當分配大於 MMAP_THRESHOLD 字節的 memory 塊時,glibc malloc() 實現將 memory 分配為使用 mmap(2) 的私有匿名映射。默認情況下,MMAP_THRESHOLD 為 128 kB,但可使用 mallopt(3) 進行調整。”

也許在其他平台上切換到 mmap 是為了解決自己不做的糟糕的 malloc() 實現?

mmap() 分配更容易以線程安全的方式實現,但 brk() 分配在 Linux 上慢了大約 10%。 看到這個問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM