【轉】mmap 與 read/write

本文轉自http://www.cnblogs.com/KevinT/p/3823286.htmlhtml

mmap與read/write兩條路線對文件的訪問比較緩存

咱們知道不管是經過mmap或read/write訪問文件在內核中都必須通過緩存, 當須要從文件讀寫內容時,都通過內存拷貝的方式與內核中的緩存進行通信。htm

    1. 用read/write方式,用戶須向內核指定要讀多少,內核再把獲得的內容從內核緩存拷向用戶空間;寫也需要有一個大體如此的過程。blog

    2. mmap的做用是經過把文件的某一塊內容映射到用戶空間上,即將以前所述的內核緩存映射到用戶空間,這樣就能夠直接經過內核緩衝池讀寫這一塊內容,這樣一來就少了內核與用戶空間的來回拷貝,因此一般更快。內存

因此mmap的優點就是相對於read/write就是減小了一次內核緩存到用戶空間內存的拷貝開銷,可是 mmap在創建映射時必須制定映射區域,因此這種方式只適用於更新、讀寫一塊固定大小的文件區域,而不能不斷的以增加方式向文件寫內容。get

相關文章
相關標籤/搜索