重定向 stdio 时 Linux BASH 内存泄漏

标签 linux bash memory-leaks

某处发生了内存泄漏,但它似乎与我的程序无关。我做出这个大胆的声明是基于这样一个事实:一旦我的程序终止,无论是通过正常方式、段错误还是中止,内存都不会恢复。如果我的程序是罪魁祸首,我会假设 MMU 会恢复所有内容,但事实并非如此。

只有当我将 stdout(在 BASH 版本 2.05 或 4 中)重定向到一个文件时,泄漏才会起作用,因为这是可以的:

# my-program 

但这不是:

# my-program > /mnt/sda1/log-output.txt

我在屏幕上打印的速度 < 2Kb/秒。 (该文件位于 USB key 上)。

有什么想法吗?

一个相关的问题是here .

最佳答案

MemFree 本身几乎什么都没说。

Linux 的 block 层缓存很多。

您可以在您提到的同一/proc/meminfo 中看到文件系统(和其他)缓存使用了多少。

关于重定向 stdio 时 Linux BASH 内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1545530/

相关文章:

mysql - 我可以使用 GUI 工具通过 SSH 连接到 MySQL 吗?

linux - 拉动带有引导/重新启动过程的线路以及带有 IP 地址的线路

C:正确释放多维数组的内存

c# - SQL Stored Proc 随着时间的推移消耗内存

linux - 我的 bash 脚本占用了太多内存

c - Linux 计时器 CLOCK_PROCESS_CPU_ID 不工作

sql - PostgreSQL:将函数的参数转换为秒

linux - 变量名后的 '-'(破折号)在这里做什么?

Git 过滤分支、变量和 bash

iphone - 使用 NSOperationQueue 并尝试更改 slider /选择器等时,iPhone 设备上遇到大量泄漏