У меня есть где-то утечка памяти, но, похоже, она не связана с моей программой. Я делаю это смелое заявление, основываясь на том факте, что после того, как моя программа завершается обычным образом, с ошибкой сегментации или прерыванием, память не восстанавливается. Если бы виновата была моя программа, я бы предположил, что MMU восстановит все, но, похоже, это не так.
Утечка возникает только тогда, когда я перенаправляю стандартный вывод (в BASH версии 2.05 или 4) в файл, как в этом случае:
# my-program
но это не:
# my-program > /mnt/sda1/log-output.txt
Скорость, с которой я печатаю на экран, составляет ‹ 2 Кб/сек. (Файл находится на USB-накопителе).
Любые идеи?
Связанный с этим вопрос здесь.
for ((c=1;c;)) do cat /proc/meminfo && sleep 1; done | awk '/MemFree:/ { if ($2 < min || min == 0) min = $2; if ($2 > max || max == 0) max = $2; printf("%s\t%d (%d,%d)\n", $1, $2, min, max) }'
- person Jamie   schedule 09.10.2009