0

我有一个程序可以计算一组非常大的文件的一些统计数据。在将文件读入 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)
}
4

0 回答 0