问题描述
我正在编写一个应用程序,该应用程序将一个巨大的文件mmap()
放入内存中,并且对于给定的用户输入,对该文件执行一长串确定性随机读取。一个粗略的轮廓:
int* data = mmap(HugeFile);
int sum = 0;
for (int i = 0,ptr = Userinput(); i < LargeNumber; i++)
{
sum += data[ptr];
ptr = DeterministicCalculation(ptr);
}
由于频繁出现页面错误,应用程序变慢。并且因为只有在前一个页面错误完成后才会触发下一个页面错误,所以我无法使 SSD 上的磁盘 IO 饱和。
最好,我想做类似的事情
for (int i = 0,ptr = Userinput(); i < LargeNumber; i++)
{
AsyncPageFault(data[ptr]);
ptr = DeterministicCalculation(ptr);
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)