c ++将文件预加载到虚拟内存中?

时间:2013-10-16 20:48:31

标签: c++ memory-mapped-files

我有一个程序可以计算一组非常大的文件的一些统计信息。在将文件读入ram时,我的进程是IO绑定约30秒然后我的进程被cpu绑定~60秒,因为我分析缓冲区

for ( i=0; i<n; ++i )
{
    read_file_into_buffer(filename[i], buffer) // ~30 seconds
    analyze_buffer(buffer)                     // ~60 seconds
}

在我将文件读入缓冲区之前,是否有请求操作系统开始将文件加载到虚拟内存中。类似于以下内容?

for ( i=0; i<n; ++i )
{
    read_file_into_buffer(filename[i], buffer)
    if (i<n-1)
        tell_os_i_will_want_to_read_this_soon(filename[i+1]);
    analyze_buffer(buffer)
}

0 个答案:

没有答案