rpb*_*ear 4 linux python memory-management
我正在运行一个 python 脚本来做一些统计,实际使用的内存很低,大约 10%。而且没有其他进程需要更多的内存。但是,当我使用时free -m,它显示几乎 95% 的内存已被使用。重点是我的脚本应该从文件中读取大量内容,所以我想知道是否有任何导致问题的 Linux 内存缓存机制?echo 1 >> /proc/sys/vm/drop_caches工作,但它似乎是手动的。我怎样才能降低内存成本并且不会对读取文件产生不良影响?
Linux 内核会自动将文件缓存在内存中以提高效率。这不是一件坏事。运行时,free -m您将在右侧看到缓存中使用的内存量。如果应用程序需要内存,内核将释放一些缓存。您不应该尝试自己管理它。
小智 5
我认为你在这里没有实际问题。
为什么要关心使用了多少总内存?有什么伤害吗?
Linux 尝试尽可能有效地使用您的内存。如果您有大量空闲内存,并且您正在读取大量文件,它将使用空闲内存来缓存这些文件。如果你有大量的活动内存,它会使用更少的内存来缓存。这就是它应该工作的方式。如果您根本不想使用内存,请将芯片从计算机中取出。
在一些不常见的情况下,大量缓存可能会很糟糕。也许读取的爆发总是发生在内存分配的爆发之前。也许关于您的特定情况的某些事情意味着没有可能的好处,您需要挤出最后 0.1% 的性能成本。也许您使用的是使用有限生命周期 RAM 的嵌入式系统。如果您有这样的情况,请告诉我们是什么情况。