fread/read的意图(读多少字节)是明确写在参数里的。
mmap则是隐含的。io效率取决于内核的read ahead是否符合你的访问模式。你不用madvise去调整的话,默认策略是为mmap的主要访问场景--映射可执行文件--优化的。
比起fread/read,mmap用起来更需要技巧,最好只用在少数适用的场合。看见“我要io快”就条件反射念出“mmap”,“direct io”,“aio”之类的,说滥用也不冤。
【 在 z16166 的大作中提到: 】
: 为啥会有滥用的说法?
: 左手(CRT file io)可以吃饭,右手(os file mapping)也可以吃饭
: 还有第三只手(os file api)
: ...................
--
FROM 58.37.58.*