在POSIX中,您有这个不错的mmap()API.文档不清楚值是否会length影响内存/性能.请指教!
void *mmap(void *addr, size_t length, int prot, int flags,
int fd, off_t offset);
Run Code Online (Sandbox Code Playgroud)
考虑一个10 MB的文件,我只需要映射它的一个子集,如2 MB.另外,我们假设我们从不尝试访问2 MB边界之外的内存.(这样做显然会产生影响.)
问:如果将length其设置为2或10 MB,这是否重要?
该length参数告诉应该将多少连续空间offset映射到内存中.与映射10M相比,仅映射长度为10M的文件的前2M不应具有不利的性能特征,除非您需要稍后更改映射以读取其他部分.
长度参数的一个原因是避免访问即使意外也不想访问的部件.另一个原因是如果你有一个6G文件和一个32位处理器,那么祝你好运,试图将所有6G映射到2-4G用户空间.
| 归档时间: |
|
| 查看次数: |
88 次 |
| 最近记录: |