释放linux页面缓存

Boo*_*ean 4 python performance

我有一个shell脚本,它调用大约20个python脚本,每个脚本读取至少500MB大小的文件.在运行几个python脚本之后,8GB ram中就有40MB.我尝试了下面的命令,它工作,让我免费5.8 GB内存.

echo 1 > /proc/sys/vm/drop_caches
Run Code Online (Sandbox Code Playgroud)

是否有一种编程方式从python中做到这一点?或者我如何强制python释放它占用的内存?

lun*_*orn 5

你为什么不简单地打开文件并写入文件?

with open('/proc/sys/vm/drop_caches', 'w') as stream
    stream.write('1\n')
Run Code Online (Sandbox Code Playgroud)

这些都是Python基础知识.


gri*_*mig 1

drop_caches-file 是 linux 特定的东西,而不是 python 所做的事情。Python已经释放了内存,只是操作系统还没有从缓存中释放内存。

我对 python 的了解不够多,无法将代码从我的脑海中抛出,但为什么不简单地使用上面的“echo”语句进行系统调用或直接写入 proc 文件系统呢?(当然,要确保脚本在 Linux 机器上运行之后。)