Sil*_*ler 7 c c++ linux asynchronous mmap
我正在试图找出是否mmap
正在使用文件,然后使用madvise()
或posix_madvise()
使用MADV_WILLNEED
/ POSIX_MADV_WILLNEED
实际触发后台异步I/O以进行预读.该手册页madvise
不指定这是否是如此-的实际行为madvise
是左大多不清楚,为了允许执行的灵活性.
但是,当调用madvise()
with 时,任何实际的主流POSIX实现(如Linux)是否实际执行异步文件I/O MADV_WILLNEED
?我似乎无法得到任何关于此的可靠信息. 这个问题表明它至少在Linux上,即使它不理想,因为没有回调机制.
这本书摘录声称posix_fadvise
有POSIX_FADV_WILLNEED
会做异步读取提前,但没有提及是否madvise()
做异步读.
此外,似乎"预读"I/O的整个概念实际上没有任何意义,除非它是异步的.如果它是同步的,它只是让用户应用程序阻止预读,而不是后来实际读取文件时,这似乎不是一个特别强大的优化.
因此,不madvise()
与MADV_WILLNEED
任何主流平台(如Linux)实际做异步预读?
归档时间: |
|
查看次数: |
1087 次 |
最近记录: |