小编KjM*_*Mag的帖子

在Ubuntu(Linux OS)中将一个巨大的文件读入C++向量

在我在Linux(Ubuntu 14.4)中运行的C++程序中,我需要读取一个完全缓存在C++向量中的90 GB文件,而我只有125 GB的内存.

当我按块读取文件块时,它会不断导致linux中缓存的mem使用率增加,结果是128 GB内存的50%以上,然后可用内存容易变为50 GB以下.

              total        used        free      shared  buff/cache   available
Mem:            125          60         0           0          65         65
Run Code Online (Sandbox Code Playgroud)

Swap: 255 0 255

所以我发现可用内存然后变为零,文件读取过程几乎停止了,我必须手动运行:

echo 3 | sudo tee /proc/sys/vm/drop_caches
Run Code Online (Sandbox Code Playgroud)

清除缓存的mem,以便恢复文件读取过程.我理解缓存的mem是为了加快再次读取文件.我的问题是如何避免手动运行drop cache命令以确保文件读取过程能够成功完成?

c++ linux ubuntu caching file

9
推荐指数
1
解决办法
230
查看次数

标签 统计

c++ ×1

caching ×1

file ×1

linux ×1

ubuntu ×1